我遇到的问题是获取id
包含特殊字符.
和$
符号的元素的值。
我对元素的id是"XS_19MAY2016_012720_311.04$_cal"
我使用jQuery的语法:
$("#"+xyz+"_cal").val() where xyz is variable having above id.
我收到的错误是:
Error: Syntax error, unrecognized expression: #XS_19MAY2016_012720_311.04$_cal.
我做错了什么或我需要做些什么来纠正它。
答案 0 :(得分:6)
逃避角色:
var foo = 'XS_19MAY2016_012720_311.04$';
$('#' + foo.replace(/[.$]/g, '\\$&') + '_cal').text('foo')

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="XS_19MAY2016_012720_311.04$_cal"></div>
&#13;
答案 1 :(得分:5)
你可以用这种方式做到这一点(没有符号转义)。
$(function() {
var
id = "XS_19MAY2016_012720_311.04$_cal",
text;
text = $('[id="' + id +'"]').text();
alert(text);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="XS_19MAY2016_012720_311.04$_cal">Yay!</div>
&#13;
答案 2 :(得分:1)
你需要告诉jquery字符串绝对是一个'ID',而不是一个类。
HTML ID属性不能包含空格,且必须至少包含一个字符。但为了兼容性,最好避免使用'_','。'
这里使用Javascript内置方法,并将DOM节点转换为Jquery对象。它看起来多余,但它稳定且易于阅读。
$(function() {
var xyz = 'XS_19MAY2016_012720_311.04$';
e = $(document.getElementById(xyz + '_cal'));
console.log(e.text());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="XS_19MAY2016_012720_311.04$_cal">
hello
</div>