提问者:小点点

如何通过jQuery删除带有双冒号的id?


如何删除带有双冒号的id?

<li role="treeitem" aria-selected="false" aria-level="2" aria-labelledby="Vendor_Name::users_anchor" aria-expanded="true" id="Vendor_Name::users" class="jstree-node  jstree-open">

我所尝试的:

$('[id*="Vendor_Name::users"]').remove();
$("#Vendor_Name\\:\\:users").remove();
$(document.getElementById("Vendor_Name::users")).remove();
$('li[id*="Vendor_Name::users"]').remove();
$('[id="Vendor_Name::users"]').remove();
$("li#Vendor_Name\\:\\:users").remove();

什么都不起作用。移除其他元素是有效的,因此它与::

我可以通过CSS删除它,但是我想从DOM中完全删除该元素。

#Vendor_Name\:\:users {
  display: none;
}

共1个答案

匿名用户

您可以从下面对您给出的每个示例的测试中看到,它们都是有效的,并且都找到了元素...假设在您运行时它存在。

js-tree类表明这可能是一个使用内部状态呈现各种节点的树插件。您可能希望使用插件的API来执行所需的操作

null

const selectors = [
    '[id*="Vendor_Name::users"]',
    "#Vendor_Name\\:\\:users",
    document.getElementById("Vendor_Name::users"),
    'li[id*="Vendor_Name::users"]',
    "li#Vendor_Name\\:\\:users"
]

const allValid = selectors.every(s=> $(s).length > 0)
console.log('allValid =', allValid)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul>
<li id="Vendor_Name::users" class="jstree-node  jstree-open">Test</li>
</ul>