2013-08-22 45 views
5

phép nói rằng tôi có một tập hợp các nguyên liệu đầu vào trên một hình thức:chọn tất cả các đầu vào trừ ẩn (nhưng với một ngoại lệ)

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

Tôi muốn chọn tất cả các nguyên liệu đầu vào, trừ type="hidden", nhưng với một ngoại lệ TÔI muốn bất kỳ đầu vào bị ẩn nào có id bắt đầu bằng "vịt". Tôi cần tất cả trong một mảng để tôi có thể lặp qua nó.

Vì vậy, hai phần đầu tiên là dễ dàng:

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

Nhưng những gì về các ngoại lệ?

Tôi đang tìm cách sạch nhất để thực hiện việc này (thích một dòng/tuyên bố).

Trả lời

7

Hãy thử

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

+1, có bạn đi! – vee

0

Hãy thử điều này:

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

dụ Làm việc trong fiddle này.

Các vấn đề liên quan