/ / Como obter o valor do elemento filho da nth div usando jquery ou javascript - javascript, jquery

Como obter o valor do elemento filho nth div usando jquery ou javascript - javascript, jquery

Quero obter o valor do elemento de entrada filho da 4ª div. Basicamente, estou recebendo o valor verificado do chekbox e gostaria de adicionar o valor associado da caixa de entrada usando a palavra-chave "this" Aqui está o meu código html

<div class="container">
<div class="cell-checkbox" style="float:left;margin-right:5%;">
<input type="checkbox" name="select" value="7" class="big">
</div>
<div class="cell-desc" style="float:left;margin-right:5%;width:30%;">
<!-- Content -->
</div>
<div class="cell-cart"> //input box is inside this div
<table cellpadding="0" cellspacing="0" border="0">
<tbody>
<tr>
<td align="right">
<table align="center" class="cellBuy">
<tbody>
<tr align="right">
<td width="1%">
<input type="hidden" name="buyid" id="buyid" value="7">
<input type="hidden" name="category" value="464">
<input type="hidden" name="itemid" value="">
<input name="qty" id="qty" size="6" maxlength="6" value="1" class="input"> /*want to get this input text value
&nbsp;
</td>
<td height="20">
<div align="left">
<input type="button" class="btn-BuyOff" value="Buy" id="addtocart" name="addtocart">
</div>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div>
</div>

Eu tentei o código abaixo mencionado, mas não está funcionando

var result = [];
$(":checkbox:checked").each(function (i) {
result.push($(this).val() + "," + $(this).parent().next().find("#qty").val());// this is for finding quantity field value
});
var strreuslt = result.join(";");
alert(strreuslt);

Respostas:

2 para resposta № 1

Tente usar o mais próximo para obter o pai mais próximo que contém as duas entradas e depois acionar a localização

$(":checkbox:checked").each(function (i) {
result.push($(this).val() + "," + $(this).closest(".container").find("input[name="qty"]").val());
});

ou:

  $(":checkbox:checked").each(function (i) {
result.push($(this).val() + "," + $(this).parent().siblings(".cell-cart").find("input[name="qty"]").val());
});

Nota: se você tiver vários grupos de entradas, precisará envolver cada grupo em um elemento dom, de preferência ul li


2 para resposta № 2

$(":checkbox").eq(3) Isso fornece o quarto elemento no jquery. A indexação começa do zero, então .eq (3) dará o quarto filho.


1 para resposta № 3

Usar name em vez disso, e nunca use o mesmo id para vários elementos:

$(this).parent().siblings(".cell-cart").find("[name=qty]").val();

Ou use isto se o contêiner contiver vários <div class="cell-cart">:

$(this).parent().next().next().find("[name=qty]").val();

1 para resposta № 4

Você tem problemas com a travessia de dom. $(this).parent() não retorna div com elemento de caixa de seleção de entrada nele. Você deve preferir atravessar para o div mais próximo com o contêiner de classe e, em seguida, encontrar a caixa de seleção de entrada nele. Como isso:

var result = [];
$(":checkbox:checked").each(function (i) {
result.push($(this).val() + "," + $(this).closest(".container").find("[name="qty"]").val());// this is for finding quantity field value
});
var strreuslt = result.join(";");
alert(strreuslt);