许多父母的孩子jQuery Selector

时间:2011-02-08 17:18:41

标签: jquery validation jquery-selectors iterator

我正在尝试选择班级.Payment

的所有父母的每个第一个孩子

示例HTML:

<div class='payment'>
  <input id="payments_0_:date_paid" name="payments[0][:date_paid]" type="text" />
  <br>
  <input id="payments_0_:amount_paid" name="payments[0][:amount_paid]" type="text" />
</div>
<div class='payment'>
  <input id="payments_1_:date_paid" name="payments[0][:date_paid]" type="text" />
  <br>
  <input id="payments_1_:amount_paid" name="payments[0][:amount_paid]" type="text" />
</div>
<div class='payment'>
  <input id="payments_2_:date_paid" name="payments[0][:date_paid]" type="text" />
  <br>
  <input id="payments_2_:amount_paid" name="payments[0][:amount_paid]" type="text" />
</div>

如何迭代每个.payment并验证每个.payment中的第一个孩子是否处于特定质量?

这是我的尝试:

$.each($(".payment"), function(key, value) { 
  alert( $("value input:first").val() ); 
});

但我遇到的麻烦是使用var value获取该属性值()

有什么想法吗?

3 个答案:

答案 0 :(得分:2)

而不是使用$.each(),而是在jQuery选择上使用.each(),以便您可以访问$(this)

$('.payment').each(function(key) {
    alert($(this).find('input:first').val());
});

答案 1 :(得分:2)

由于有问题的输入是第一个孩子,您可以使用:first-child selector(docs)在原始选择器中定位它们,然后使用原生value属性获取其值:

$('.payment > input:first-child').each(function() {
    alert(this.value);
});

使用filter()(docs)方法或not()(docs)方法将它们减少到那些没有(或确实)满足验证的那些可能是值得的。

答案 2 :(得分:1)

尝试使用$("input:first", value).val()