找不到此元素的正确 jQuery 选择器
Can't find the correct jQuery selector for this element
我有重复的 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 从 "a.add_mycrate" class 获取信息,然后用内容做一些 ajax 的事情,一切正常.
但是在响应中我试图显示一个以前隐藏的 div "added-music" 但我似乎找不到正确的选择器。
这是我正在使用的:
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 .added-music 但我也知道我做错了,因为无论我尝试什么都不会显示这个 div.
尝试删除 .add-music 在您显示 .added-music 之后。
这意味着:交换警报上方的两行。
我怀疑,由于整个事件都绑定到被删除的 link,它也停止执行绑定到它的代码。
编辑:或者根本不删除()它,而是.hide()它。
问题是由 ul
元素中错误嵌套的标记引起的。有关详细信息,请参阅此 Whosebug Answer。
一个可能的解决方案是做这样的事情:
<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
中的元素都共享一个公共且可识别的父节点 (.pod-control
),使它们更容易遍历和定位 JQuery .parent()
,[ =15=、.siblings()
、.next()
、.prev()
方法和 :first-child
、:last-child
、:nth-child
选择器等
我有重复的 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 从 "a.add_mycrate" class 获取信息,然后用内容做一些 ajax 的事情,一切正常.
但是在响应中我试图显示一个以前隐藏的 div "added-music" 但我似乎找不到正确的选择器。
这是我正在使用的:
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 .added-music 但我也知道我做错了,因为无论我尝试什么都不会显示这个 div.
尝试删除 .add-music 在您显示 .added-music 之后。 这意味着:交换警报上方的两行。
我怀疑,由于整个事件都绑定到被删除的 link,它也停止执行绑定到它的代码。
编辑:或者根本不删除()它,而是.hide()它。
问题是由 ul
元素中错误嵌套的标记引起的。有关详细信息,请参阅此 Whosebug Answer。
一个可能的解决方案是做这样的事情:
<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
中的元素都共享一个公共且可识别的父节点 (.pod-control
),使它们更容易遍历和定位 JQuery .parent()
,[ =15=、.siblings()
、.next()
、.prev()
方法和 :first-child
、:last-child
、:nth-child
选择器等