Selector de jQuery de hijos de muchos padres

Estoy tratando de seleccionar a cada primer hijo de cualquier padre con la clase. .Payment

HTML de muestra:

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

¿Cómo puedo iterar a través de cada pago y validar si el primer hijo de cada uno tiene una calidad determinada?

Este es mi intento:

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

Pero el problema que tengo aquí es usar la var value en obtener ese valor de atributo ()

¿Alguna idea?

preguntado el 08 de febrero de 11 a las 17:02

3 Respuestas

Dado que las entradas en cuestión son un primer hijo, puede apuntarlas en el selector original usando el :first-child selector(docs) , luego usa el nativo value propiedad para obtener su valor:

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

Puede valer la pena reducirlos a un conjunto de aquellos que no cumplen (o cumplen) la validación utilizando la filter()(docs) método o el not()(docs) método.

Respondido 07 Jul 12, 09:07

En lugar de usar $.each(), Utilizar .each() en la selección de jQuery en su lugar para que tenga acceso a $(this):

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

Respondido 08 Feb 11, 20:02

Intenta usar $("input:first", value).val()

Respondido 08 Feb 11, 20:02

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.