jQuery - 当id包含' $'时,如何获取带有id的元素?符号?

时间:2017-10-10 18:42:30

标签: javascript jquery

我对jQuery有疑问。我有一个id为CLASS_SRCH_WRK2_SUBJECT $ 108 $的元素。所以我在Chrome开发人员工具中测试了jQuery,如下所示

$('#CLASS_SRCH_WRK2_SUBJECT$108$')

然而,该工具说

Uncaught DOMException: Failed to execute '$' on 'CommandLineAPI': '#CLASS_SRCH_WRK2_SUBJECT$108$' is not a valid selector.
at <anonymous>:1:1

无论如何选择具有该ID的元素?

2 个答案:

答案 0 :(得分:2)

您必须使用$转义\\

&#13;
&#13;
$(function () {
  console.log($('#CLASS_SRCH_WRK2_SUBJECT\\$108\\$').text());
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="CLASS_SRCH_WRK2_SUBJECT$108$">Hello</div>
&#13;
&#13;
&#13;

另一种非推荐方式是使用[id="TheID"]使用属性选择器:

&#13;
&#13;
$(function () {
  console.log($('[id="CLASS_SRCH_WRK2_SUBJECT$108$"]').text());
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="CLASS_SRCH_WRK2_SUBJECT$108$">Hello</div>
&#13;
&#13;
&#13;

注意:确切地说,错误表明您使用的是Command Line API而不是jQuery。你能检查jQuery是否真的被加载了吗?

答案 1 :(得分:1)

您可以使用标准DOM方法,然后将其转换为jQuery对象,如下所示:

var el =document.getElementById("CLASS_SRCH_WRK2_SUBJECT$108$");
var $el = $(el);

console.log($el);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<span id="CLASS_SRCH_WRK2_SUBJECT$108$"><span>