Javascript jquery最接近于';我不想工作
我在页面上重复了一个旁边有一个div的图像,如下所示:Javascript jquery最接近于';我不想工作,javascript,jquery,closest,Javascript,Jquery,Closest,我在页面上重复了一个旁边有一个div的图像,如下所示: <img src="/img/productspage/questionMark.jpg" class="prodQuestionMark" /> <div class="vuQuestionBubble"> <p>this is where text for the text will go</p> </
<img src="/img/productspage/questionMark.jpg" class="prodQuestionMark" />
<div class="vuQuestionBubble">
<p>this is where text for the text will go</p>
</div>
它似乎不起作用。。。单击事件正在运行,我可以选择父div与。parent,但似乎无法与最近的div交互。。。有什么想法吗?最接近的
函数查找元素最近的祖先。实际上,您需要使用.next('.vuQuestionBubble')
描述:获取第一个祖先
与选择器匹配的元素,
从当前元素开始,然后
向上遍历DOM树
最亲近的人显然是祖先,而不是兄弟姐妹
参考:
休息一下,准备一套装备。vuQuestionBubble
是一门课
$(this).closest('vuQuestionBubble').show();
=>
$(this).closest('.vuQuestionBubble').show();
最近的
遍历到祖先元素,所以尝试兄弟('vuQuestionBubble')
最近的
查找祖先,而不是兄弟;此外,您的选择器在开始时缺少一个
(您告诉它查找vuQuestionBubble
元素,其中您真正指的是带有类“vuQuestionBubble”的div
)
在当前结构中,可以使用,因为带有“vuQuestionBubble”的div是下一个元素。然而,如果你改变了你的结构并在它们之间放置了一些东西,next
对你来说是行不通的
我可能会使用nextAll(“div.vuQuestionBubble:first”)
或nextAll(“vuQuestionBubble:first”)
(链接:,):
这将发现第一个div的类“vuQuestionBubble”,它作为兄弟类跟随img
,即使它不是紧挨着img
,因此如果标记稍有变化,代码不太容易受到维护问题的影响。您仍然需要类选择器(.)True,但不知何故……不完整。;-)谢谢你这么深入的回答。我不知道这些功能。@phili:不用担心,很高兴这有帮助。
$(this).closest('vuQuestionBubble').show();
=>
$(this).closest('.vuQuestionBubble').show();
$(document).ready(function () {
$('.prodQuestionMark').click(function () {
$(this).nextAll('div.vuQuestionBubble:first').show();
// Or without `div`:
//$(this).nextAll('.vuQuestionBubble:first').show();
});
});