Html /纯文本innertext和特殊字符转义序列动态

时间:2016-04-27 19:28:10

标签: javascript jquery html

问题是将值转换为具有以下输入的文本

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文本如何,我都可以使用什么属性来获得正确的结果。我试图避免编写一个if循环来查看id它是html还是普通的,如果可能的话根据它编写鳕鱼

由于

3 个答案:

答案 0 :(得分:1)

在我的测试中,$('Weight')也返回&#34;&#34;。无论如何,我会再次包装该值,这对我有用。这是有效的,因为text()始终会返回未标记的文本,因为您可以阅读here

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

答案 1 :(得分:1)

你的问题有点可疑,但让我以我理解的方式回复。

您似乎正在尝试避免解析html文字。

所以,坚持使用旧的JAVASCRIPT,函数返回以下内容:

function returnStringLiteral(x){

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

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

事实上,除非你追求其他事情,否则将会做这项工作。

答案 2 :(得分:0)

如果您参考JQuery文档

Jquery

它解释了Selector要么从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