选择除隐藏之外的所有输入(但有一个例外)

时间:2013-08-22 01:18:07

标签: javascript jquery html

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

<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"); })

但异常怎么办?

我正在寻找最简洁的方法(更喜欢一行/语句)。

2 个答案:

答案 0 :(得分:7)

尝试

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

答案 1 :(得分:0)

试试这个:

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

fiddle中的工作示例。