我有一个HTML结构:
<div class="mydiv">xx
<span>test1</span>
<span>test2</span>
<div class="inerdiv">
<span>inner span</span>
</div>
</div>
<span>test3</span>
现在我想将样式应用于包含“内跨”的跨度。
$(function() {
$(".mydiv").click(function() {
$(".mydiv").next().find("span").css("border", "1px solid yellow");//not working
});
});
什么应该是正确的代码?
答案 0 :(得分:3)
替换:
$(".mydiv").next().find("span").css("border", "1px solid yellow");
使用:
$(".mydiv .innerdiv span").css("border", "1px solid yellow");
我认为next()
不符合你的想法。
next()
返回所有先前匹配元素的下一个兄弟。
鉴于标记:
<div class="hello">foo1</div><span>bar1</span>
<div class="goodbye">foo2</div><span>bar2</span>
<div class="hello">foo3</div><span>bar3</span>
以下内容将返回包含bar1
和bar3
的元素:
$("div.hello").next()
因此,无法使用<div class="innerdiv">
从外部div
获取next()
,因为他们不是兄弟姐妹。
答案 1 :(得分:0)
$(function() {
$(".mydiv").click(function() {
$(".innerdiv span", this).css("border", "1px solid yellow");
});
});
答案 2 :(得分:0)
$ (.mydiv .inerdiv span:contains('inner span')).css("border", "1px solid yellow")