如何选择不是特定元素后代的所有输入?

时间:2012-09-03 23:58:10

标签: jquery

观察:

enter image description here

我的页面上有275个元素,其中30个是输入。 12个输入是tr.items元素的后代,因此有18个输入,而不是。我怎样才能选择后者?

如您所见$(:not(tr.items) input)选择所有输入。

4 个答案:

答案 0 :(得分:6)

$('input:not(tr.items input)')

Fiddle

我的选择器匹配所有与tr.items input不匹配的输入。简单地说,它选择所有不是tr.items的后代的输入。

:not(selector) Reference

答案 1 :(得分:2)

试试这个。

$('input').filter(function(){
   return $(this).closest('tr.items').length === 0
})

答案 2 :(得分:0)

尝试:

var notwanted = $('tr.items').find('input');

var wanted =  $('input').not(notwanted);

答案 3 :(得分:0)

var textinputs=$('input:text').map(function(){
   if($(this).parents('tr.items').length == 0){
    return $(this);
   } else {
    return null;
   }
 })

这将返回这些元素的类似数组的对象。你也可以使用$ .each;