如何获得id为dot和dollar符号的dom元素的值

She*_*nar 4 html javascript jquery angularjs

我面临着获取id包含特殊字符.$符号的元素的值的问题.

我对元素的id是"XS_19MAY2016_012720_311.04$_cal"我使用jQuery的语法:

$("#"+xyz+"_cal").val()   where xyz is variable having above id.
Run Code Online (Sandbox Code Playgroud)

我收到的错误是:

Error: Syntax error, unrecognized expression: #XS_19MAY2016_012720_311.04$_cal.
Run Code Online (Sandbox Code Playgroud)

我做错了什么或我需要做些什么来纠正它.

jcu*_*bic 6

逃避角色:

var foo = 'XS_19MAY2016_012720_311.04$';
$('#' + foo.replace(/[.$]/g, '\\$&') + '_cal').text('foo')
Run Code Online (Sandbox Code Playgroud)
<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>
Run Code Online (Sandbox Code Playgroud)

  • Ya但是OP使用变量,与字符串连接,作为选择器 (3认同)

Ali*_*dov 5

您可以使用这种方式(没有符号转义).

$(function() {
  
  var 
    id = "XS_19MAY2016_012720_311.04$_cal",
    text;

  text = $('[id="' + id +'"]').text();
  
  alert(text);
});
Run Code Online (Sandbox Code Playgroud)
<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>
Run Code Online (Sandbox Code Playgroud)