Javascript 通过id和特殊符号选择DOM元素

Javascript 通过id和特殊符号选择DOM元素,javascript,jquery,dom,Javascript,Jquery,Dom,我试图弄清楚如何通过Id来选择DOM元素,其中Id有些难看。以下是一个id示例: <element id='[$something:else#52,$someth:else#51]'> 但是jQuery返回: Error: Syntax error, unrecognized expression: #[$something:else#52,$someth:else#51] 我还尝试使用文档选择器: document.querySelectorAll('#' + elementI

我试图弄清楚如何通过Id来选择DOM元素,其中Id有些难看。以下是一个id示例:

<element id='[$something:else#52,$someth:else#51]'>
但是jQuery返回:

Error: Syntax error, unrecognized expression: #[$something:else#52,$someth:else#51]
我还尝试使用文档选择器:

document.querySelectorAll('#' + elementId) //with the id from above
再次导致错误:

SyntaxError: Failed to execute 'querySelectorAll' on 'Document': '#[$something:else#52,$someth:else#51]' is not a valid selector. 
[我的问题] 有没有办法强制这些选择器或选择器建议的任何其他选择器不将选择器参数视为表达式?有没有办法做出这样的选择


谢谢你抽出时间

您可以像这样选择它,假设元素是div

$('div[id="[$something:else#52,$someth:else#51]"]')....;


我可能错了,但值得一试…[]是针对阵列的,这可能是它无法工作的原因。尽量只使用字母、连字符和下划线作为ID。可能还有其他的你可以使用,但它只是让事情保持简单。你正在使用元字符查找来逃避它们。@putvande当然会的。看见我猜是你投了反对票。@Stephen Muecke看来这可能会成功,非常感谢你的帮助,但我仍然有一个问题。当[$something:else52,$someth:else51]是一个变量时,您能告诉我如何使用相同的方法吗。例如-var searchId=[$something:else52,$someth:else51]。在本例中,$'div[id='+searchId+']'不起作用,因为它在我的字符串后面附加了不带等式的内容。当searchId是一个变量时,您能用case编辑您的答案吗。谢谢您刚才在等号之后和方括号结束之前缺少了一些引号。请参阅更新的答案。我知道了,但我的问题是我不是在代码中写入字符串的人。字符串来自我的后端,我只有searchId变量,它在该点上具有适当的值。我无法使用“searchId”,原因很明显。我怎样才能使变量上的等式使你的例子起作用?再次感谢您抽出时间!我不太明白你的意思。引号位于选择器中,而不是变量中。请参见编辑。如果您知道searchId的值为“[$something:else52,$someth:else51]”,则$'div[id='+searchId+']”将查找该div或$'*[id='+searchId+']”以查找具有该id的任何元素
$('div[id="[$something:else#52,$someth:else#51]"]')....;
var id = '[$something:else#52,$someth:else#51]"]';
$('div[id="' + id + '"]')....;