元素的id,即第二个span,带有classui图标帮助-它应该会触发警报"eur"。
这是我的代码片段:
<ul>
<li id="eur" class="na">EUR<br /><span class="orgic ui-icon ui-icon-circle-close">.</span><span class="orgic ui-icon ui-icon-help">.</span></li>
</ul>
$("span.ui-icon-help").click(function () {
alert($(this).prevAll("li").attr("id"));
});
我需要的是获得我们点击的元素之前的第一个
这段代码不起作用,它选择了前面的跨度,而不是"li"。
如何解决此问题?
感谢
使用.closest()
$("span.ui-icon-help").click(function () {
alert($(this).closest("li").attr("id"));
//alert($(this).parent().attr("id"));
});
演示:Fiddle
.prevAll()选择前面的同级元素-在您的情况下,span.ui-icon-circle-close
和br
元素是前面的同级。但你需要的是祖先元素。在您的情况下,由于span
是目标li
的直接后代,您可以使用parent()或使用.closest()来查找与通行证选择器匹配的最近祖先
尝试使用parents(),如:
$("span.ui-icon-help").click(function () {
alert($(this).parents("li").attr("id"));
});