2014-02-18 48 views
1

我試圖刪除沒有一些屬性的元素。如果元素沒有屬性X和Y?

要刪除一個獨特的元素,我這樣做是這樣的:

$('ul li:not([data-caracter='+chosenCaract+'])').remove(); 

其工作正常,但我不知道如何檢查,如果元素不具有兩個或多個屬性..我該怎麼辦那?

+0

你的意思是? ''('ul li:not([data-caracter ='+ selectedCaract +'] [xxx = yyy])')。remove();' – epascarello

+0

您可能只想要''ul li:not([attr1] [attr2 ])''如果你不擔心屬性值 – SmokeyPHP

回答

2

要刪除不具有兩種特性的所有元素,你可以使用

$('ul li:not([data-x='+chosenx+'][data-y='+choseny+'])').remove(); 

但在這一點上,你可能要重新考慮整個設計。另一種方法是使用filter

$('ul li').filter(function(){ 
    var data = $(this).data(); 
    return !(data.x=='somevalue' && data.y=='someotherone'); 
}).remove(); 
+0

我明白你說的,其實我認爲第一個作品很好,但我應該使用第二個替代品,但它似乎不工作,我做了一些事情錯誤。如果我console.log(data.caracter)它返回我所有的數據字符,它不過濾。讓我告訴你完整的代碼jsfiddle.net/u5fpZ @dystroy –