我想设置不在某个ID中的a
个元素。例如,假设这是我的HTML:
<div id="boat">
<a href="#">I'm in a boat! ☻</a>
</div>
<a href="#">☹</a>
现在,假设我只想设置不在船上的a
元素。我期望类似于a:hover:not(#boat a)
的东西可以工作,但唉,事实并非如此。我有办法做我想做的事吗?
答案 0 :(得分:3)
当涉及到jQuery选择器时,a:hover
将选择所有应用了CSS伪类a
的{{1}}元素(即当前正在使用的:hover
元素用鼠标盘旋。
这是选择过程,不是样式选择,要选择您正在谈论的元素,请尝试以下方法:
a
DEMO: http://jsfiddle.net/marcuswhybrow/AMWhU/
如果一个悬停的jQuery效果是你所做的选择,那么你就像往常一样绑定事件:
$('a:not(#boat a)')
答案 1 :(得分:0)
div#id
以内的链接将包含.closest('div#id').length === 0
,并且由于0为false,您可以选择与以下相反的方式来设置这些链接的样式:
$('a').hover(function(e){
if (!$(this).closest('div#boat').length) {
// YOUR CODE HERE
}
});
答案 2 :(得分:0)
看起来你可以使用否定属性选择器('!=')。鉴于(大部分)你的原始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')
查找没有id“boat”的所有节点,以及一个锚子节点。