我有一个看起来像这样的表:
<table>
<tr>
<td class="packing-vol">0.19</td>
<td class="qty-cell"><input type="text" name="qty[]" class="qty" value="2" /></td>
</tr>
<tr>
<td class="packing_total">0.70</td>
<td class="qty-cell"><input type="text" name="qty[]" class="qty" value="1" /></td>
</tr>
</table>
我正在遍历每个出现的.packing-vol获取它的文本,然后我想从同一行获取数量,所以我转到它的父进程然后钻进.qty类。但当我提醒(数量)时,我收到'未定义'的消息。
var total = 0;
jQuery('.packing-vol').each(function(i) {
var qty = jQuery(this).parent("td.qty-cell .qty").val();
alert(qty);
var cur = parseFloat(jQuery(this).text());
if(!isNaN(cur)){
total = total + cur;
}
});
答案 0 :(得分:3)
我认为你应该这样做:
var qty = jQuery(this).parent().find("td.qty-cell .qty").val();
你需要升级1级(使用.parent
),然后使用.find
答案 1 :(得分:2)
parent
只是向上一层。你不能再用它来进入树内了。
parents
向上是多个级别。你不能再用它来进入树内了。
您可以使用parent
/ parents
,然后使用find
做您想做的事情,甚至更好:
var total = 0;
jQuery('.packing-vol').each(function(i) {
var qty = jQuery(this).parent().children('.qty-cell').children('.qty').val();
alert(qty);
var cur = parseFloat(jQuery(this).text());
if (!isNaN(cur)){
total = total + cur;
}
});
您也可以使用find
,但它比直接进入更慢,因为它必须搜索DOM对象。
但你也可以这样做:
var qty = jQuery(this).parent().find("td.qty-cell .qty").val();
答案 2 :(得分:1)
而不是
var qty = jQuery(this).parent("td.qty-cell .qty").val();
尝试:
var qty = jQuery(this).parent().find(".qty").val();