使用带有条件的.replaceWith()?

时间:2015-03-27 13:01:56

标签: jquery

我需要使用带有条件的.replaceWith()吗?

改变这个:

<div class="container">
  <div class="inner first">Hello</div>
  <div class="inner second">And</div>
  <div class="inner third">Goodbye</div>
</div>

$( "div.second" ).replaceWith( "<h2>New heading</h2>" );

这样的事情:

<div class="container">
  <div class="inner first">Hello</div>
  <div class="inner second">And</div>
  <div class="inner third">Goodbye</div>
</div>
if($(.inner.second).text == "some text"){
   $( "div.second" ).replaceWith( "<h2>New heading</h2>" );
}

2 个答案:

答案 0 :(得分:2)

jQuery replaceWith接受一个方法,你最好用它来处理多个div.second元素:

$( "div.second" ).replaceWith(function(){
    return $(this).text() === "some text" ? "<h2>New heading</h2>" : null;
});

或者你可以过滤匹配的集合:

$( "div.second" ).filter(function(){
    return $(this).text() === "some text";
}).replaceWith("<h2>New heading</h2>");

答案 1 :(得分:1)

有两种方法:

$( "div.second:contains('And')" ).replaceWith( "<h2>New heading</h2>" );

注意:这将匹配内部某处包含字符串And的所有元素。

Demo

或者

if($('.inner.second').text() == "And"){
   $( "div.second" ).replaceWith( "<h2>New heading</h2>" );
}

Demo

<强>参考

:contains

.text()