当子容器包含某些文本时插入类

时间:2018-08-28 02:26:05

标签: javascript jquery

我在这里有一个特殊的情况,如果某些文本与第一个子容器匹配,则需要在第二个容器之后添加第三个容器。

所以:

<div class="ans_value">
<b class="ans_value_title">123</b>
<span class="ans_value_text>abc</span>
</div>

如果ans_value_title包含123,则变为以下内容:

<div class="ans_value">
<b class="ans_value_title">123:</b>
<span class="ans_value_text>abc</span>
<div class="ans_value_new></div>
</div>

这是我尝试但无法正常工作的代码:

if ($('div.ans_value > b.ans_value_title:contains("123:")').length > 0) {
    $(".ans_value_new").addClass("thisClass");
}

任何指针将不胜感激!

2 个答案:

答案 0 :(得分:2)

可以使用filter()each循环使其特定于实例

$('.ans_value_title').filter(function(){
   return $(this).text().trim() === '123'
}).parent().append('<div class="ans_value_new">New div</div>')
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="ans_value">
  <b class="ans_value_title">123</b>
  <span class="ans_value_text">abc</span>
</div>

答案 1 :(得分:0)

这里:

$('.ans_value').children().eq(0).text()=='123'&&//check the first children's value
$('.ans_value').append('<div class="ans_value_new></div>')//inject dom at end