Pet*_*ter 27 string jquery text
是否可以使用jquery text()函数删除字符串中的所有HTML?
带有HTML标记的字符串:myContent = '<div id="test">Hello <span>world!</span></div>';
结果必须是:
Hello world!
Ros*_*gan 81
var myContent = '<div id="test">Hello <span>world!</span></div>';
alert($(myContent).text());
Run Code Online (Sandbox Code Playgroud)
这导致了你好世界.这是否回答你的问题?
http://jsfiddle.net/D2tEf/举个例子
小智 26
我创建了这个测试用例:http://jsfiddle.net/ccQnK/1/,我使用Javascript替换函数和正则表达式来获得你想要的结果.
$(document).ready(function() {
var myContent = '<div id="test">Hello <span>world!</span></div>';
alert(myContent.replace(/(<([^>]+)>)/ig,""));
});
Run Code Online (Sandbox Code Playgroud)
Rad*_*ech 12
如果您需要删除HTML但不知道它是否实际包含任何HTML标记,则不能直接使用jQuery方法,因为它返回非HTML文本的空包装.
$('<div>Hello world</div>').text(); //returns "Hello world"
$('Hello world').text(); //returns empty string ""
Run Code Online (Sandbox Code Playgroud)
您必须将文本包装在有效的HTML中:
$('<div>' + 'Hello world' + '</div>').text();
Run Code Online (Sandbox Code Playgroud)
或者使用方法$ .parseHTML()(自jQuery 1.8开始),它可以处理HTML和非HTML文本:
var html = $.parseHTML('Hello world'); //parseHTML return HTMLCollection
var text = $(html).text(); //use $() to get .text() method
Run Code Online (Sandbox Code Playgroud)
加上parseHTML完全删除脚本标签,这对用户输入的防黑客保护非常有用.
$('<p>Hello world</p><script>console.log(document.cookie)</script>').text();
//returns "Hello worldconsole.log(document.cookie)"
$($.parseHTML('<p>Hello world</p><script>console.log(document.cookie)</script>')).text();
//returns "Hello world"
Run Code Online (Sandbox Code Playgroud)
你能不能尝试一下吗?
myContent = '<div id="test">Hello <span>world!</span></div>';
console.log($(myContent).text()); //Prints "Hello world!"
Run Code Online (Sandbox Code Playgroud)
请注意,您需要将字符串包装在jQuery对象中,否则text显然不会有方法.