【问题标题】:JQuery Remove() doesn't workJQuery Remove() 不起作用
【发布时间】:2012-01-25 18:12:52
【问题描述】:

我在另一个内部有一个 DIV 元素,如下所示:

<div id="filters">
    <div class="filterData">hello</div>
</div>

我正在尝试删除该元素:

$("#filters").remove('.filterData');

问题是,事实并非如此。我已经在页面上的其他元素上进行了测试,并且可以正常工作。问题是,我不能附加到它,显示或隐藏它,使用 .empty。我还把它改成了一个以“filterData”为 ID 的 DIV,并告诉 JQuery 将其删除,但它拒绝...

以前有人有过这样的固执吗?

编辑:我也试图在 $(document).ready 函数中删除它,所以我不知道。

【问题讨论】:

    标签: jquery element


    【解决方案1】:

    .remove() 不是这样工作的

    使用

    $("#filters .filterData").remove();
    

    如果您使用选择器作为remove 的参数,它将充当现有集合的过滤器,而不是find..

    因此,如果您有很多 .filerData 并想删除第一个,您可以使用 $("#filters .filterData").remove(':first');。(只是一个示例

    【讨论】:

    • 不确定是这种情况。 api.jquery.com/remove 建议将选择器 传递给 .remove()
    • @RobCowie 是的,但是如果你注意到它说,selector 表达式 filters 匹配元素的集合被移除。 (更新答案以反映这一点
    • 不,仍然没有运气。该元素仍然存在。
    • @XanderGuerin 你是动态地/使用 ajax 添加该元素吗?还要确保没有其他 id 为 filters 的元素,因为它必须是唯一的..
    • 不,该元素已经存在于 HTML 页面上。在一个 JS 文件中,我从中获取值,做一些事情,完成后我试图将其删除。
    【解决方案2】:

    Gaby 是正确的,你只需要使用 .remove() 而不是 .remove('.filterData')。或者如果你仍然想保留你的 div,但只是取出里面的所有东西,你可以使用 .empty()

    $(".filterData").empty();
    

    【讨论】:

      猜你喜欢
      • 2015-10-03
      • 2013-10-06
      • 2014-07-22
      • 2012-03-28
      • 1970-01-01
      • 1970-01-01
      • 2014-10-25
      • 1970-01-01
      • 2023-03-27
      相关资源
      最近更新 更多