2012-07-25 50 views
4

我正在寻找选择类型输入的所有元素和选择,但只有当他们的id不为空。不空IDS如何在选择器中使用“AndAlso”?

$(*[id]) 

我已经得到这样的:

$('input, select') 

的元素类型和这一点。我不知道如何将它们组合成:

((isSelect || isInput) && id != null) 

在此先感谢。

+0

不等于((isSelect || isInput)&& id!= null)等价于(isSelect && id!= null)|| (isInput && id!= null)'? – mellamokb 2012-07-25 19:33:41

+0

@mellamokb这样看。你想说什么? – Yatrix 2012-07-25 19:34:48

+0

我以一种更容易转换为选择者的方式重申了这个条件,这与@JamesAllardice在他的回答中给出的一样。 – mellamokb 2012-07-25 19:36:10

回答

5

你可以每个元素选择后添加属性选择:

var elems = $('input[id], select[id]'); 

这里有一个working example

还要注意的是(在支持querySelectorAll浏览器,至少),这应该是significantly faster比使用.filter()

enter image description here

+0

非常酷。谢谢! – Yatrix 2012-07-25 19:43:55

+0

@Yatrix - 不客气,很高兴我能帮忙:) – 2012-07-25 19:44:57

2

选择所有的输入和选择元素然后将它们进行过滤,只具有输入和选择一个ID。

$("input,select").filter("[id]");