所以我正在使用:
let idOfParentElement= "xd%63-3?',";
$(`#${idOfParentElement}`).remove(); //does not work
但是当我通过id方法使用document get元素并删除它时工作正常:
document.getElementById(`${idOfParentElement}`).remove();
为什么jQuery方法不能处理复杂的ID?
答案 0 :(得分:2)
使用任何元字符(例如!“#$%&'()* +,。/:;< =>?@ [] ^`{|}〜)作为文字作为名称的一部分,必须使用两个反斜杠进行转义:\。例如,id =“foo.bar”的元素可以使用选择器$(“#foo \ .bar”)。W3C CSS规范包含有关有效CSS选择器的完整规则集。还有一个有用的是Mathias Bynens关于标识符的CSS字符转义序列的博客条目。
所以你需要在选择器中转义任何元字符,它在jQuery中具有特殊含义。您可以使用jQuery.escapeSelector()
方法转义这些元字符(在jQuery版本3中添加)。