console.log($('"#'+d+'"'));
在我的HTML中,我有:
<div id="2013-10-23">
<h1>5</h1>
<p>eeeeeeeeeeee</p>
</div>
在上面的代码中,我有一个<div>
,其中一个id
为2013-10-23
,当得到那个id
时,它抛出了这个语法错误:
Uncaught Error: Syntax error, unrecognized expression: "#2013-10-23"
console.log($('"#'+d+'"'));
在我的HTML中,我有:
<div id="2013-10-23">
<h1>5</h1>
<p>eeeeeeeeeeee</p>
</div>
在上面的代码中,我有一个<div>
,其中一个id
为2013-10-23
,当得到那个id
时,它抛出了这个语法错误:
Uncaught Error: Syntax error, unrecognized expression: "#2013-10-23"
9条答案
按热度按时间xkrw2x1b1#
尝试
你的解决方案是将双引号作为字符串的一部分传递。
6ioyuze22#
不需要双引号+单引号组合
您的选择器结果如下所示,这是对引号的过度使用:
n8ghc7c13#
这也可能发生在safari中,例如,如果您尝试使用缺少]的选择器
但有趣的是,这个缺少括号的jquery选择器在chrome中也能工作。
bmp9r5qi4#
尝试使用:
这将删除您使用的额外引号。
eivnm1vs5#
试试这个(ES5)
ES6
to94eoyn6#
我不得不多看一点来解决我的问题,但解决问题的方法是找到错误在哪里。这里展示了如何在Jquery的错误转储中做到这一点。
在我的例子中,
id
是空的,并且`$(“#”+ id);产生错误。这是我没有看到的地方,所以这有助于查明问题所在,这样我就可以排除故障并修复它。
dnph8jn47#
如果你使用的是jQuery 2.1.4或更高版本,试试这个:
或者,你可以在使用var之前先定义它,这样可以使你的代码更简单。
bihw5rsg8#
对于一些人来说,你可能在
id
属性中有一个特殊字符,所以jQuery无法正确读取它。ID和NAME标记必须以字母([A-Za-z])开始,后面可以跟任意数量的字母、数字([0-9])、连字符(“-”)、下划线(“_”)、冒号(“:“)和句点(“.”)。
查看此答案以了解更多详细信息:HTML中id属性的有效值是什么?
yhxst69z9#
我有一个带有空格的选择器**('#test.test')。
我的错误示例:
这对我有帮助:encodeURIComponent(value)