2016-08-22 91 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