2015-12-21 58 views
-5

我一起工作的HTML的所有元素具有標籤類似:選擇與特定的ID和丟失屬性

<a id="tag" data="modal" href=#>1</a> 
<a id="tag" data="modal" href=#>2</a> 
<a id="abc" href=#>8</a> 
<a id="tag" href=#>3</a> 
<a id="tag" data="modal" href=#>4</a> 
<a id="tag" href=#>5</a> 
<a id="tag" href=#>6</a> 
<a id="tag" data="modal" href=#>7</a> 

我要選擇使用id =標籤和丟失的數據屬性的所有a元素。我嘗試使用$('a#tag[data!=modal]'),但它只返回第一個匹配元素。當我嘗試$('a[data!=modal]')時,它會返回所有缺少數據屬性的元素以及id="abc",這是我不想要的。請指教。

編輯:我知道它不是HTML應該如何結構化,但它不受我控制,我堅持實施它的分析。

+3

ID必須在文檔方面獨特的,使用類,而不是......現在,這會工作,但請不要使用....:'$('a [id = tag]:not([data])')' –

+0

請參閱[「應該在標題中包含」標籤「 //meta.stackexchange.com/questions/19190/should-questions-include-tags-in-their-titles),其中共識是「不,他們不應該」! –

+0

在一個頁面中,一個元素只能有一個id。它在文檔中應該是唯一的。 –

回答

0

不能有多個具有相同ID的HTML元素。在後臺jQuery將使用getElementById這將只返回第一個元素。

但是你可以將這些更改爲類:

<a class="tag" data="modal" href=#>1</a> 

那麼你的選擇是:

$(".tag:not([data])")