2013-08-22 11 views
5

Diciamo che ho una serie di ingressi in un modulo:selezionare tutti gli ingressi tranne nascosto (ma con una sola eccezione)

<form id="myform"> 
    <input type="checkbox" id="goat_1"> 
    <input type="checkbox" id="goat_2"> 
    <input type="text" id="pig_3"> 
    <input type="hidden" id="cow_1"> 
    <input type="hidden" id="chick_3"> 
    <input type="hidden" id="duck_5"> 
</form> 

voglio selezionare tutti gli ingressi, ad eccezione type="hidden", ma con una sola eccezione voglio qualsiasi input nascosto con un ID che inizia con "duck". Ho bisogno di tutto questo in un array in modo da poterlo scorrere attraverso.

Così le prime due parti sono facili:

$("#myform").find(":input").not("[type=hidden]").each(
              function() { alert("do stuff"); }) 

Ma per quanto riguarda l'eccezione?

Sto cercando il modo più pulito per farlo (preferisco una riga/istruzione).

risposta

7

Prova

$("#myform").find(":input").not("[type=hidden]:not([id^='duck'])").each(function() { 
    alert("do stuff"); 
}); 
+0

+1, ci si va! – vee

0

Prova questo:

$('#myform > input').not(':hidden:not([id^=duck])').each(function (i, e) { 
    alert('This is my id: ' + e.id); 
}); 

esempio Lavorare in questo fiddle.

Problemi correlati