我想樣式a
不屬於某個ID的元素。例如,讓我們說這是我的HTML:如何選擇:不在某個選擇器中的懸停
<div id="boat">
<a href="#">I'm in a boat! ☻</a>
</div>
<a href="#">☹</a>
現在,讓我們說,我只想樣式的a
元素,這不是一條船上。我預計類似a:hover:not(#boat a)
的工作,但唉,事實並非如此。有什麼辦法可以做我想做的事嗎?
我想樣式a
不屬於某個ID的元素。例如,讓我們說這是我的HTML:如何選擇:不在某個選擇器中的懸停
<div id="boat">
<a href="#">I'm in a boat! ☻</a>
</div>
<a href="#">☹</a>
現在,讓我們說,我只想樣式的a
元素,這不是一條船上。我預計類似a:hover:not(#boat a)
的工作,但唉,事實並非如此。有什麼辦法可以做我想做的事嗎?
當談到jQuery選擇器a:hover
將選擇應用了CSS僞類:hover
的所有a
元素(即a
當前正在用鼠標懸停的元素)。
這是選擇的過程,不是造型選擇,選擇你所談論的內容,試試這個來代替:
$('a:not(#boat a)')
DEMO:http://jsfiddle.net/marcuswhybrow/AMWhU/
如果懸停jQuery的效果是,你是在你做了選擇後,像往常一樣綁定事件:
$('a:not(#boat a)').hover(function() {});
鏈接不是內div#id
會有.closest('div#id').length === 0
,由於0是假的,你可以按如下樣式的鏈接上那些相反的選擇:
$('a').hover(function(e){
if (!$(this).closest('div#boat').length) {
// YOUR CODE HERE
}
});
您應該在將處理程序綁定到每個`a`標記之前正確地進行選擇,從而減少設置。 – 2011-01-31 04:31:46
好點,你的方式更好。 – mVChr 2011-01-31 08:16:47
它看起來像你可以使用否定屬性選擇器('!=')。鑑於(主要是)你原來的HTML:
<script src="/Users/kburton/Downloads/jquery-1.4.4.min.js">
</script>
<div id="boat">
<a href="#">I'm in a boat!</a>
</div>
<div id='car'>
<a href="#">I'm in a car!</a>
</div>
<a href="#">I'm not in the boat!</a>
在JavaScript控制檯,運行:
$('[id!="boat"] > a')
尋找那些沒有身份證「舟」的所有節點,與錨的孩子。
不幸的是`:not()`只接受一個簡單的選擇器作爲參數。在這裏,`#boat a`表示兩個簡單的選擇器與後代選擇器相結合,`a`是鍵選擇器。你最好的選擇是使用jQuery - 我喜歡Marcus Whybrow的答案。 – BoltClock 2011-01-31 11:17:21