2016-04-27 111 views
-1

上午有問題的轉換數值低於輸入HTML /純文本的innerText和特殊字符轉義序列dyamically

var test = '<html>Weight(lb)</html>' 
$(test) -- Pass 

var test = 'Weight(lb)' 
$(test) -- fail 

我知道這是逃跑的序列相關,但我怎麼能處理這種動態的,因爲我的測試變量文本是動態的,可以有任何特殊字符。

而我的下一個問題,而這個HTML到文本轉換髮生。有沒有更好的方法,我可以有一個基於html或純文本轉換的通用功能。例如

var test = '<html>Weight(lb)</html>' 
$(test).text() ==> "Weight(lb)" 

var test = 'Weight(lb)' 
$(test).text() ==> "" expected : "Weight(lb)" 

什麼屬性我可以用來獲得正確的結果,無論純文本或HTML文本。我試圖避免編寫的,如果循環看到ID是HTML或純寫依據,如果可能的

感謝

+0

'$('Weight(lb))''返回什麼? – callback

+0

獲取「語法錯誤,無法識別的表達式」 – Peru

回答

1

在我的測試鱈魚,$('Weight')也返回「」。無論如何,我會再次包裝這個值,這對我有用。這是有效的,因爲text()總是返回未加標籤的文字,因爲您可以閱讀here

$("<html>"+"Weight(lb")+"</html>").text(); 
+0

爲什麼這會倒下? – AliMC

+0

我試圖避免如果循環看到HTML或不..如果我會寫一個額外的功能 – Peru

+0

我改變了文字 – AliMC

0

如果您參考JQuery的文件

Jquery

它解釋說,選擇要麼選擇從DOM元素。或元素是通過傳遞有效的HTML創建的。

所以,你的情況

//This is valid HTML 

var test = '<html>Weight(lb)</html>' 
$(test) -- Pass 

//Not a Valid HTML 

var test = 'Weight(lb)' 
$(test) -- fail 

// Here since $(test) will be undefined 

var test = 'Weight' 
$(test) -- pass 
1

你的問題是有點半信半疑,但讓我回答,我明白它的方式。

看來你試圖避免解析html文字。

所以,用好老JAVASCRIPT,下面的函數返回堅持:

function returnStringLiteral(x){ 

// is what you may be after 
return document.createTextNode(x).data; 
}; 

returnStringLiteral('<html>Weight(lb)</html>' 
); 

意志,實際上可能,除非做你的工作在別的東西之後。