尝试选择具有特定ID的div的后代的锚标记,例如#mydiv1
,#mydiv2
和#mydiv3
。
myFunction = function() {
var theDivs = $("#mydiv1, #mydiv2, #mydiv3");
theDivs.hover(function(e){
$(this+" a:link").css("color","#99ccff");
},function(e){
$(this+" a:link").css("color","#848484");
});
}
选择器$(this+" a:link")
似乎没有选择任何东西。
是否有人对此选择的正确语法有任何想法?
答案 0 :(得分:10)
尝试$(this).find("a:link")
编辑:额外信息
当你$(this + "query")
混合类型时。 jQuery的选择器参数正在寻找查询字符串或对象。当'this'转换为字符串时,它不会是有效的选择器语法。例如,您可以执行以下操作:
$("." + this.className + "[query]")
答案 1 :(得分:7)
您可以为上下文提供元素,以下内容应该有效:
$("a:link", this).
它将搜索从this
节点开始的锚点。
答案 2 :(得分:1)
或尝试$(this).children("a:link")
答案 3 :(得分:0)
上述任何一种方法都应该有效,但我没有在jQuery选择器语法中看到任何关于“:link”是有效语法的内容。如果以上方法对你不起作用,也许可以尝试将其关闭。
原始方法不起作用的原因是“this”是一个DOM元素,而不是代码中的字符串。如前所述,您可以通过执行“$(this)”将其设为jQuery对象,或者只使用DOM元素作为搜索上下文。
答案 4 :(得分:0)
使用.each()迭代div,并使用子选择器:
myFunction = function() {
var theDivs = $("#mydiv1, #mydiv2, #mydiv3");
theDivs.each(function(){
$(this > 'a').css("color","#99ccff");
});
}
喜欢这样。