迭代<li>并用jquery替换文本

时间:2016-08-19 11:39:39

标签: jquery html replace iterated-function

我有以下HTML结构:

<div class="mydiv">
  <ul>
    <li>Text 1</li>
    <li>Text 2</li>
  </ul>
  <ul>
    <li>Text 3</li>
    <li>Text 4</li>
  </ul>
  <ul>
    <li>Text 5</li>
  </ul>
</div>

我想找到一个包含&#34; 4&#34;的字符串。并用&#34; four&#34;替换它。此li的其他div元素的其他字符串对我来说不再有趣。如果我只知道我应该搜索哪个div而不知道哪个li元素,我该怎么办?

2 个答案:

答案 0 :(得分:0)

您可以使用:contains selector

&#13;
&#13;
$( "div li:contains('4')" ).text(function(_, val) { 
    return val.replace(/4/, "four")
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="mydiv">
  <ul>
    <li>Text 1</li>
    <li>Text 2</li>
  </ul>
  <ul>
    <li>Text 3</li>
    <li>Text 4</li>
  </ul>
  <ul>
    <li>Text 5</li>
  </ul>
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

只需在父div的HTML上使用replace,然后使用替换的内容重置HTML:

$(".mydiv" ).html($(".mydiv" ).html().replace(/4/, "four"))
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="mydiv">
  <ul>
    <li>Text 1</li>
    <li>Text 2</li>
  </ul>
  <ul>
    <li>Text 3</li>
    <li>Text 4</li>
  </ul>
  <ul>
    <li>Text 5</li>
  </ul>
</div>