Fid*_*lis 21 html string jquery
所以我有以下字符串:
var s = '<span>Some Text</span> Some other Text';
Run Code Online (Sandbox Code Playgroud)
结果应该是一个包含内容"Some Other Text"的字符串.
我试过了...
var $s = $(s).not('span');
Run Code Online (Sandbox Code Playgroud)
......和很多其他的东西remove(),not()等,但没有奏效.
有什么建议?我可以将字符串与正则表达式匹配,但我更喜欢常见的jQuery解决方案.
编辑:
我没有用正则表达式搜索解决方案,我只是想知道为什么这个例子不起作用:http: //jsfiddle.net/q9crX/150/
Abd*_*nim 50
你可以将你string的jQuery对象包装起来并进行某种类似的操作:
var removeElements = function(text, selector) {
var wrapped = $("<div>" + text + "</div>");
wrapped.find(selector).remove();
return wrapped.html();
}
Run Code Online (Sandbox Code Playgroud)
用法
var removedSpanString = removeElements("<span>Some Text</span> Some other Text", "span");
Run Code Online (Sandbox Code Playgroud)
这种方法的优点是您可以指定要删除的jquery选择器.即你可能希望删除<th>字符串.在这种情况下,这将非常方便.希望这可以帮助!
yol*_*yer 12
一个非常简单的方法:
var html = '<span>Remove <b>tags & entities</b></span>';
var noTagText = $(html).text();
// ==> noTagText = 'Remove tags & entities'
Run Code Online (Sandbox Code Playgroud)
请注意,它将删除标签,但也删除html实体.
sp0*_*00m 10
这可能适合您的需求:
<([^ >]+)[^>]*>.*?</\1>|<[^/]+/>
Run Code Online (Sandbox Code Playgroud)

在JavaScript中:
$s = s.replace(/<([^ >]+)[^>]*>.*?<\/\1>|<[^\/]+\/>/ig, "");
Run Code Online (Sandbox Code Playgroud)
它还删除了自闭标签(例如<br />).