在javascript中搜索并替换div中html的文本,但不在tag中替换文本

时间:2014-03-28 06:13:56

标签: javascript html regex

我有一些HTML结构,我想在HTML结构中搜索特定文本。 见下面的例子

<h1>Try to span some text on this page</h1>
    <div>
        span is a <span>paragraph</span>.</div>
    <p class="span ddd">This 123is a paragraph.1</p>

<div class="span ddd">This is some span in a div element.</div>

现在,如果我正在寻找&#34; span&#34;文本然后,&#34; span&#34;单词应该用div标签包装。 但只有&#34; span&#34;文字中的单词,而不是来自班级或其他标签。

我想要这样的输出(使用div或span包裹)

<h1>Try to <span class="search">span</span> some text on this page</h1> <div> <span class="search">span</span> is a <span>paragraph</span>.</div> <p class="span ddd">This 123is a paragraph.1</p> <div class="span ddd">This is some <span class="search">span</span> in a div element.</div>

2 个答案:

答案 0 :(得分:0)

我不太确定这是不是你想要的。但是这样的事情应该有用

$(function() {
    var found = $('div:contains("span")');
});

这是一个小提琴 http://jsfiddle.net/z7ckK/

如果您使用*:contains,则会在HTML中搜索。

更新: 最初错过了更换部件。我有一个解决方案,但为此你需要在搜索元素上包装元素。请检查我的小提琴。你会明白的。 http://jsfiddle.net/z7ckK/3/

答案 1 :(得分:0)

<div id="wrapper"> 
    <h1>Try to span some text on this page</h1>
  <div>
    span is a <span>paragraph</span>.
  </div>
    <p class="span ddd">This 123is a paragraph.1</p>

    <div class="span ddd">This is some span in a div element.</div>
</div>

我修改了你的html,用一个包装器来封装我的选择器。但是你可以使用你自己的选择器。

$(document).ready(function(){
   var str=$('#wrapper').html();
   $('#wrapper').html(str.replace( new RegExp(" span ","g"),"<div>span</div>"));
});

此代码将满足您的需求。 这是jsffiddle

如果问题得到解决,请不要忘记将其标记为已解决。感谢。