我有重复的html块,如下所示:
<div class="pod-control">
<a class="fap-single-track"></a>
<a class="pod-dl"></a>
<div class="add-music"><a class="add_mycrate"></a></div>
<div class="added-music"></div>
</div>
我使用jQuery从&#34; a.add_mycrate&#34;获取信息。类,然后用内容做一些ajax的东西,这一切都很好。
但是我正在尝试的回应。显示一个先前的.hidden div&#34;添加音乐&#34;我似乎无法为它找到正确的选择器。
这就是我正在使用的:
var $this = jQuery(this);
jQuery.post(myCrate.ajaxurl, data, function(response) {
$this.closest('.add-music').remove();
$this.closest('.pod-control').find('.added-music').show();
alert(response);
});
给我带来麻烦的是:
$this.closest('.pod-control').find('.added-music').show();
在阅读了大量帖子后,我知道我需要将选择器移动到顶层(从a.add_mycrate到.pod-control),这样我就可以.find。添加音乐但是我也知道我&# 39;我做错了,因为无论我试图赢得什么都没有显示这个div。
答案 0 :(得分:2)
在显示.added-music之后尝试删除.add-music 。 这意味着:交换警报上方的两行。
我的怀疑是,由于整个事件被绑定到被删除的链接,它也会停止执行绑定到它的代码。
编辑:或者根本不删除()它,而是.hide()它。
答案 1 :(得分:0)
问题是由 INSERT INTO post (post_id, username, post)
VALUES (15, 'jim', 'not much');
元素中嵌套严重的标记引起的。有关详细信息,请参阅此Stackoverflow Answer。
可能的解决方案是做这样的事情:
ul
这样,<li class="pod-control">
<a class="fap-single-track"></a>
<a class="pod-dl"></a>
<div class="add-music">
<a class="add_mycrate"></a>
</div>
<div class="added-music"></div>
</li>
内的元素共享一个共同且可识别的父节点(li
),使得它们更容易遍历并使用JQuery .pod-control
,.parent()
,{ {1}},.children()
,.siblings()
方法和.next()
,.prev()
,:first-child
选择器等。