我在javascript中有以下字符串。
str = '<a href="/display/1">This is link</a>';
我想从上面的字符串中获得"This is link"
,但没有成功。
我也试过这个
str.innerHTML
但是获取未定义的
发布于 2011-10-19 06:51:38
字符串不是DOM对象。您拥有的变量- str
是一个字符串,innerHTML属性仅存在于DOM (Document )节点上,因此您必须首先转换为该属性才能使用这种方法。
var div = document.createElement('div');
div.innerHTML = str;
var domNode = div.firstChild;
var textYouWant = domNode.innerHTML;
或使用jQuery
$(str).html();
发布于 2011-10-19 07:05:37
在PrototypeJS中,您可以使用stripTags()
函数:
'a <a href="#">link</a>'.stripTags();
// -> 'a link'
'a <a href="#">link</a><script>alert("hello world!");</script>'.stripTags();
// -> 'a linkalert("hello world!");'
'a <a href="#">link</a><script>alert("hello world!");</script>'.stripScripts().stripTags();
// -> 'a link'
发布于 2011-11-18 00:37:51
Prototype的stripTags()
将完成这项工作,但取决于您的需求,您可能不想实际删除所有的HTML标记。例如,如果标签中有一个标记,stripTags()
也会删除它。下面是如何在普通的JavaScript中使用正则表达式来完成这一任务:
function textFromLink(linkText) {
return linkText.replace(/.*<a[^>]*>\s*(.+)\s*<\/a>.*/, '$1');
}
上面的函数将返回标签的内容,并在不触及标签内的其他标签的情况下,裁剪空格。
https://stackoverflow.com/questions/7817520
复制相似问题