Переберите <li> и замените текст на jquery
У меня есть следующая структура 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>
Я хочу найти строку, содержащую "4" и заменить ее на "четыре". Другие строки из других li
элементы этого div
тогда мне уже не интересно. Как я могу сделать это, если я знаю только в каком div
Я должен искать, но не какой li
элемент?
2 ответа
Решение
Вы можете использовать : содержит селектор
$( "div li:contains('4')" ).text(function(_, val) {
return val.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>
Просто используйте replace в HTML родительского div и затем сбросьте 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>