例如
我有var myid="abc xyz"
然后我使用函数转义metachars并获取var x = "#"+escapechars(myid);
评估为#abc\\xyz
现在,当我尝试$(x)
时,它没有获得任何元素
但是当我在观察中键入$("#abc\\xyz")
时,它会获得元素。
我附上同一场景的截图。
问题是:我想使用变量
选择元素谢谢。
这是我的场景的jsfiddle。 http://jsfiddle.net/9hq4nzvx/3/
答案 0 :(得分:0)
这个> http://jsfiddle.net/9hq4nzvx/5/解决了这个问题。
当我们使用字符串变量时,我们只需要一个反斜杠而不是2。
函数escapechars现在返回:“#abc \ xyz”,它根据需要获取元素。
var selection ="abc xyz";//this can be anything else comes from an array.
var x = "#"+escapeStr(selection); //"#abc\\\\\ xyz";
$(x).html("<h1>Hii</h1>");//why don't I get element here?
console.log(x);
alert(x);
$("#abc\\ xyz").append("<h2>bye</h2>");
function escapeStr(str) {//escape special chars from selectors
if (str)
return str.replace(/([ !"#$%&'()*+,.\/:;<=>?@[\\\]^`{|}~])/g, '\\$1');
return str;
}