从HTML内容Jquery中剥离特定的span标记

时间:2014-03-18 12:37:22

标签: javascript jquery html regex strip

我有以下HTML字符串,我只需删除特定的span标记(具有pre属性的标记),但保留span内容

"<P>it <SPAN class='pre="it' ?>is is</SPAN> a movie</P>"

我需要以下输出,

"<P>it is is a movie</P>"

6 个答案:

答案 0 :(得分:4)

好吧,首先你应该尝试使用有效的HTML。然后你可以使用这段代码:

$("<p>it <span class='pre'>is is</span> a movie</p>")
    .find('span') //Used 'span' here since you'll probably change the class name
    .contents()
    .unwrap()
    .parent();

http://jsfiddle.net/T6cSe/


来自jQuery doc

  

.unwrap()方法删除了元素的父元素。这实际上是.wrap()方法的反转。匹配的元素(以及它们的兄弟,如果有的话)在DOM结构中替换它们的父节点。

您需要定位跨度的内容以打开跨度本身。

答案 1 :(得分:3)

试试这个:

var html = '<p>it <span class="pre">is is</span> a movie</p>';
var $element = $(html);
$element.find('.pre').contents().unwrap();

建议@ Sunny-r-gupta,如果你想要修改后的字符串......

var modifiedHtml = $element.wrap('<div></div>').parent().html();

答案 2 :(得分:0)

使用unwrap method

$('.pre').unwrap();

你的html字符串应为:

"<P>it <SPAN class='pre'>is is</SPAN> a movie</P>"

答案 3 :(得分:0)

这是基于输入类型和输出的代码

p标记内的任何内容都会保存在var html中。 按钮用于帮助您了解其工作原理。

参考小提琴 http://jsfiddle.net/abhishekverma3189/dwq9s/

答案 4 :(得分:0)

试试这段代码

var str = $('<p>it <span class="pre">is is</span> a movie</p>').text();
// str would be "it is is a movie".
var newStr = '<p>' + str + '</p>';
// newStr would be "<p>it is is a movie</p>"

答案 5 :(得分:0)

你可以在修复yor string后使用正则表达式:

你的字符串不应该像"<P>it <SPAN class='pre="it' ?>is is</SPAN> a movie</P>"那样,因为在这个字符串中你创建了一个java脚本错误“Uncaught SyntaxError: Unexpected token ILLEGAL”所以它的字符串应该如下例所示:

"<P>it <SPAN class='pre=" + "it' ?>is is</SPAN> a movie</P>"

"<P>it <SPAN class='' pre='it' ?>is is</SPAN> a movie</P>"

"<P>it <SPAN class='' pre='it' ?>is is</SPAN> a movie</P>"

"<P>it <SPAN class='pre=it' ?>is is</SPAN> a movie</P>"

然后使用正则表达式模式来获得您喜欢的字符串:

<强> JavaScript Code:

var s= "<P>it <SPAN class='pre=it' ?>is is</SPAN> a movie</P>";
var desireString = s.replace(/<span[^>]+\?\>/i, '').replace(/<\/span>/i, '');
console.log(desireString); 

<强> Output:

<P>it is is a movie</P> 
相关问题