/ / Comment obtenir la valeur de l'élément enfant du nième div en utilisant jquery ou javascript - javascript, jquery

Comment obtenir la valeur d'élément enfant de nth div en utilisant jquery ou javascript - javascript, jquery

Je veux obtenir la valeur de l'élément d'entrée enfant de 4th div. Fondamentalement, je reçois la valeur de chekbox vérifiée et je voudrais ajouter la valeur de la zone de saisie associée en utilisant le mot-clé "this" Voici mon code 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>

J'ai essayé le code mentionné ci-dessous mais cela ne fonctionne pas

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);

Réponses:

2 pour la réponse № 1

Essayez d'utiliser le plus proche pour obtenir le parent le plus proche qui contient les deux entrées et déclencher la recherche

$(":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());
});

Remarque: si vous avez plusieurs groupes d'entrées, vous devrez envelopper chaque groupe dans un élément dom de préférence ul li


2 pour la réponse № 2

$(":checkbox").eq(3) Cela vous donne le 4ème élément de jquery. L'indexation commence à zéro, donc .eq (3) donnera le 4ème enfant.


1 pour la réponse № 3

Utilisation name à la place, et ne jamais les utiliser id pour plusieurs éléments:

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

Ou utilisez-le si le conteneur contient plusieurs <div class="cell-cart">:

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

1 pour la réponse № 4

Vous rencontrez des problèmes avec la traversée dom. $(this).parent() ne retournez pas div contenant un élément de case à cocher d'entrée. Vous devriez plutôt parcourir le div le plus proche avec le conteneur de classe, puis y trouver la case d'entrée. Comme ça:

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);