找不到此元素的正确 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"类中获取信息,然后对内容做一些ajax的东西,这一切都很好。
但是在响应中,我正在尝试.显示先前的.hiddendiv"添加音乐",但我似乎找不到正确的选择器。
这是我正在使用的:
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 .add-music,但我也知道我做错了,因为无论我尝试什么都不会显示这个div。
在显示 .add-music 后,尝试删除 .add-music。这意味着:交换警报上方的两行。
我的怀疑是,由于整个事件都绑定到被删除的链接,因此它也停止执行绑定到它的代码。
编辑:或者根本不删除()它,而是.hide()它。
问题是由 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
里面的元素都共享一个公共的、可识别的父节点(.pod-control
),使得它们更容易用JQuery .parent()
、.children()
、.siblings()
、.next()
、.prev()
方法和:first-child
、:last-child
、:nth-child
选择器等进行遍历和定位。
相关文章:
- jQuery选择器无法正常工作
- 将jquery选择器转换为数组
- JavaScriptDOM正常工作时JQuery选择器不工作
- 在我的情况下,使用带有变量失败的 jquery 选择器
- 换行符插入jquery选择器
- 使用javascript"这个“;用于jquery选择器
- jQuery选择器缓存问题
- jQuery 选择器,所有跨度都在 DIV 内
- JQuery选择器:如果同级具有.class,则选择td
- jQuery选择器不识别任何动态创建的HTML输入函数
- 循环遍历元素jquery选择器
- jQuery选择器错误:无法识别的表达式
- 自定义jquery选择器属性未在模拟器中激发
- Jquery选择器为空,我应该使用哪个作用域
- jQuery选择器就是用这个构建的
- jQuery 选择器混淆
- 将jQuery选择器与“this”相结合
- jQuery选择器在脚本中不起作用,但在控制台中工作
- jQuery 选择器中的简单 jQuery 语法和串联
- 全局 JQuery 选择器缓存以提高性能