天哪,我觉得我在滥发stackoverflow,这是我今天的第三篇文章。不好意思
我什至以前都发布过与此相关的问题,但是自那以后我对代码进行了一些更改,因此我认为最好发布一个新问题。
$('.pmlist ul li h4 .toggle').click(function() {
$(this).closest('.meddel').toggle(250);
});
那就是我现在所拥有的。最近的()方法不起作用的原因是因为div .meddel紧邻h4元素。最近的()仅在DOM树上向上爬,而忽略了其他子元素。对? parent()的工作原理几乎相同,也不起作用。
而且,由于我只想切换元素中最接近的.meddel div,所以我需要一些东西,是的,它只能捕获最接近的.meddel div,而不是全部。
为了一点点清除,这是一个列表项的HTML:
<li class="item">
<h4><a class="toggle">[topic]</a><small>2010-04-17 kl 12:54 by <u>[name]</u></small></h4>
<div class="meddel">
<span>
<img style="max-width: 70%; min-height: 70%;" src="profile-images/img.jpg" alt="" />
<a href="account.php?usr=47">[name]</a>
</span>
<p>text</p>
</div>
</li>
我有几个类似的项目,如果我单击一个切换链接,我只希望切换最近的.meddel,如前所述。
谢谢。
最佳答案
这是解决此问题的另一种方法:
$('.pmlist ul li h4 .toggle').click(function() {
$(this).closest('h4').siblings('.meddel').toggle(250);
});
这将转到
<h4>
,然后查找要切换的同级.meddel
元素。 You can read more on .siblings()
here。这种方法使它对标记更改更具弹性,但是如果脚本仍然紧密耦合,则可能不会引起太大的关注。关于jquery - jQuery-不知道使用哪种方法,closest()和parent()不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2664023/