在我的代码中,我可以获取对象而不是值。如何获取.cups
文本框的值?感谢。
HTML:
<tr id="20">
<td class="description">CHEESE,FONTINA</td>
<td><input type="text" class="cups" value=""></td>
<td><input type="checkbox" class="breakfast"></td>
<td><input type="checkbox" class="lunch"></td>
<td><input type="checkbox" class="dinner"></td>
<td><input type="checkbox" class="snack"></td>
<td><input type="checkbox" class="favorites"></td>
<td><label class="addFood"><input type="button" class="input_text_custom input_button" value="Add"></label></td>
</tr>
JS:
$(document).ready(function () {
$('.addFood').click(function () {
var tr = $(this).parents('tr');
var foodId = tr.attr('id'); // works
var servings = tr.children('.cups'); // returns [object Object]
var servings = tr.children('.cups').val(); // returns undefined
alert(servings);
});
});
答案 0 :(得分:6)
答案 1 :(得分:3)
我总是发现最好是使用jQuery选择器尽可能冗长。特别是当涉及到类时,可以有多个元素或类型可以匹配的元素。 Id是唯一的,因此tr#20
过度杀伤(IMO)。
我会用这样的东西 -
var cupsValue = $("#20 input.cups").val();
如果您仍想使用代码的衍生产品,我还建议您使用closest()
而不是parents()
(除非您的标记中缺少某些内容)。您只需要查找一个父对象,即距离当前元素的父级最近的tr
。