一尘不染

当ID包含方括号时,按ID查找DOM元素?

javascript

我有一个DOM元素,其ID类似于:

something[500]

它是由我的Ruby onRails应用程序构建的。我需要能够通过jQuery获取此元素,以便我可以沿DOM向上移动以删除其父级的父级,该父级具有一个我事先无法访问的变量ID。

有人知道我该怎么做吗?以下代码似乎无效:

alert($("#something["+id+"]").parent().parent().attr("id"));

经过进一步检查,以下内容:

$("#something["+id+"]")

返回一个对象,但是当我在其上运行“ .html()”或“ .text()”时,结果始终为null或只是一个空字符串。


阅读 198

收藏
2020-04-25

共1个答案

一尘不染

您需要转义方括号,以便不将其计为属性选择器。尝试这个:

alert($("#something\\["+id+"\\]").parent().parent().attr("id"));

请参见选择器中的特殊字符,特别是第二段:

要将任何元字符(例如!"#$%&'()*+,./:;<=>?@[\]^``{|}~)用作名称的文字部分,必须使用两个反斜杠对它进行转义:\\。例如,带有的元素id="foo.bar"可以使用选择器$("#foo\\.bar")

2020-04-25