首页 > 解决方案 > 如何在jQuery中按名称删除带有子哈希的哈希

问题描述

在我的 html 中,我有:

<input name="creative[placement_creative_attributes][site_placment_id]" />
<input name="creative[placement_creative_attributes][site_id]" />
and ....

我想通过这样的方式删除整个系列的元素,但这不起作用:

  $('[name*=creative[placement_creative_attributes]]').remove();

通过 jQuery 删除整个哈希的正确方法是什么?

标签: jquery

解决方案


看起来您在示例中混淆了一些引号,应该在name属性的预期通配符匹配周围有引号:

$('[name*="creative[placement_creative_attributes]"]').remove();

然而,在这种特殊情况下,我建议使用 carat ( ^) 来选择具有name以 string 开头的属性的每个元素,creative[placement_creative_attributes]然后remove()从 DOM 中选择每个元素:

$("[name^='creative[placement_creative_attributes]']").remove();

jQuery 文档

$("button").click(function () {
    $("[name^='creative[placement_creative_attributes]']").remove();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input name="creative[placement_creative_attributes][site_placment_id]" placeholder="creative[placement_creative_attributes][site_placment_id]" /><br />

<input name="creative[placement_creative_attributes][site_id]" placeholder="creative[placement_creative_attributes][site_id]" /><br />

<input name="creative[site_id]" placeholder="creative[site_id]" /><br />

<button>Remove placement_creative_attributes</button>


推荐阅读