5

假设我在表单上有一组输入:

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

我想选择除 之外的所有输入,type="hidden"但有一个例外,我确实想要任何隐藏的输入,其 id 以“duck”开头。我需要这一切在一个数组中,所以我可以遍历它。

所以前两部分很简单:

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

但是例外呢?

我正在寻找最干净的方法来做到这一点(更喜欢一行/语句)。

4

2 回答 2

7

尝试

$("#myform").find(":input").not("[type=hidden]:not([id^='duck'])").each(function () {
    alert("do stuff"); 
});
于 2013-08-22T01:24:54.270 回答
0

尝试这个:

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

这个小提琴中的工作示例。

于 2013-08-22T01:24:07.177 回答