2016-04-27 54 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>' 
); 

意志,实际上可能,除非做你的工作在别的东西之后。