2010-11-08 4 views
4
<div id="arraydiffid"> 
    <input type="hidden" name="array_diff[]" value="0" /> 
    <input type="hidden" name="array_diff[]" value="1" /> 
    <input type="hidden" name="array_diff[]" value="2" /> 
    <input type="hidden" name="array_diff[]" value="3" /> 

    <div class='hello'> 
     somethings 
    </div 

    <input type="hidden" name="array_diff[]" value="4" /> 

    <span>hello</span> 

    <input type="hidden" name="array_diff[]" value="5" />   
</div> 

Comment puis-je parcourir uniquement tous les enfants de type «entrée masquée»? (Et non le reste, comme div ou durée) J'ai essayé:Parcourir/itérer chaque élément d'entrée d'un div

$('#arraydiffid>children').each(function(){ 
    alert($(this).value()); 
}); 

Répondre

8
$('#arraydiffid > input[type=hidden]').each(function() { 

    if($(this).val()>=param) 
     $(this).val($(this).val()+1); 
}); 

Hope that helps :)

+0

Ouais ça marche. Le seul problème est qu'il obtient la valeur en tant que chaîne. Donc, si j'écris (dans la fonction()) ceci if ($ (ceci) .val()> = param) $ (this) .val ($ (this) .val() + 1); il n'ajoute pas 1, juste il met 1 à la fin de la chaîne. – markzzz

+2

Utilisez parseInt() pour vous assurer qu'il est traité comme un entier. parseInt ($ (this) .val()) + 1 – Gazillion

+1

@mark Utilisez 'parseInt (this.value, 10)' pour transformer la chaîne en entier –

0

Il pourrait être bénéfique pour envelopper ces sous une forme que thats la manière d'entrée est supposé être affiché. Ensuite, vous pouvez utiliser jQuery.serialize pour accéder aux données.

<form id="arraydiffid> 
    <input /> 
    .... 
</form> 

$("#arraydiffid").serialize(); //array_diff%5B%5D=0&array_diff.... 

Je ne suis pas au courant de ma notation de tableau pseudo, je crois que la façon dont vous avez-vous configurer vos entrées, il faudra un plugin jQuery pour utiliser cette notation.

http://api.jquery.com/serialize/ Exemple: http://jsfiddle.net/N7ZC4/

Questions connexes