2016-08-22 70 views
0

如何获取未使用JQuery属性的元素的集合?如何获取没有属性的元素的集合?

我想查找链接其中包含的图像没有alt属性。

我应该用这样的东西吗? $('a>img[alt!=""]')

编辑:

我发现它周围的工作。有一种方法可以检测是否有子标签。但在我的项目中,我从分割的字符串派生出选择器。这会导致使用.has的问题。

var selectors = 'a.mark-video;a.sp5;a>img[alt!=""]' 
selectors = selectors.split(";").join(", "); 
$(selectors).each(
function(){ 
    var current = this; 
    if (this.nodeName == "IMG") 
    { 
    current = this.parentNode; 
    if (current.nodeName != "A") 
     current = this.parentNode; 
    if (current.nodeName != "A") 
     return false; 
    current = $(current); 
    } 
    } 
); 

在函数中,如果它是父对象,我以不同的方式使用了“a> img”选择器,但是这是在我尝试搜索链接而不是图片的项目中,因此它有意义,我不寻找图像...

+0

这应该工作。请看看这个文档https://api.jquery.com/attribute-not-equal-selector/ – vijayP

+0

你使用这个时出错吗? – vijayP

+0

它实际上不会返回链接的集合,但图像的集合... – user1141649

回答

1

试试这个:使用:not在方括号的属性名称,请参见下面的代码

$('a > img:not[alt]') 

注:放一个空格前后的>

+0

谢谢。我也想尝试这样的事情,但我无法知道如何使用not操作符。 – user1141649

+0

目前我正在尝试使用这个'a.mark-video,a.sp5,a> img:not [alt]'作为选择器,并且在调试器中出现了非常奇怪的错误。 (){(选择器_)。( function(){var test = this; } ); } ** **错误**:异常 - 类型错误 - 选择器未定义。 ** stack **:'jquery-3.0.0.js:1915:5Sizzle user1141649

+0

看起来像JQuery拒绝:不是操作符。没有它没有错误 – user1141649