2014-09-29 61 views
0

例如。轉義元字符並將其作爲字符串變量用於選擇器

我有變種myid="abc xyz"

然後我逃使用功能metachars並獲得var x = "#"+escapechars(myid); 評估其對#abc\\xyz

現在,當我嘗試做$(x)它沒有得到任何元素 但是當我鍵入$("#abc\\xyz")在看它獲得的元素。 我附上了相同場景的屏幕截圖。

問題是:我要選擇使用可變

謝謝你的元素。 enter image description here

這是我的場景的jsfiddle。 http://jsfiddle.net/9hq4nzvx/3/

+0

你能告訴我們你的代碼你如何評估? – Shadow 2014-09-29 06:19:07

+0

你可以在jsfiddle上發佈演示嗎? – 2014-09-29 06:19:25

+0

檢查出這個小提琴,你必須做別的錯誤=> http://jsfiddle.net/9hq4nzvx/ – 2014-09-29 06:35:23

回答

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(/([ !"#$%&'()*+,.\/:;<=>[email protected][\\\]^`{|}~])/g, '\\$1'); 
    return str; 
} 
相關問題