我在获取元素的值时遇到了问题,该元素的id包含.和$符号等特殊字符。
我的id to元素是"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.我做错了什么,或者我需要做些什么来纠正它。
发布于 2016-05-19 16:38:06
只需对字符进行转义:
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>
发布于 2016-05-19 16:45:44
您可以使用这种方式(不使用符号转义进行)。
$(function() {
var
id = "XS_19MAY2016_012720_311.04$_cal",
text;
text = $('[id="' + id +'"]').text();
alert(text);
});<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>
发布于 2016-05-19 17:02:53
你需要告诉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>
https://stackoverflow.com/questions/37317965
复制相似问题