使用contains()选择器替换元素文本并替换()

时间:2016-05-18 07:57:43

标签: jquery html contains

我的语言选项列表很少:

<ul class="dropdown-menu">
   <li><a href="#">English (English)</a></li>
   <li><a href="#">Polski (Polish)</a></li>
</ul>

我正在尝试将每个English (English)更改为EN,但没有结果

$('a:contains("English (English)")').html().replace('English (English)', 'EN');

我错了什么?

3 个答案:

答案 0 :(得分:1)

您不是更新元素文本,只是更新返回的字符串。使用 html() 并根据旧的html内容更新功能。

&#13;
&#13;
$('a:contains("English (English)")').html(function(i, v) {
  return v.replace('English (English)', 'EN');
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="dropdown-menu">
  <li><a href="#">English (English)</a>
  </li>
  <li><a href="#">Polski (Polish)</a>
  </li>
</ul>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

&#13;
&#13;
$(".dropdown-menu").find('li a').filter(function() {
  return $(this).text() == 'English (English)';
}).text('EN');
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="dropdown-menu">
  <li><a href="#">English (English)</a>
  </li>
  <li><a href="#">Polski (Polish)</a>
  </li>
</ul>
&#13;
&#13;
&#13;

使用.filter()

答案 2 :(得分:1)

您可以使用replaceWith()替换任何div的内容:

$('a:contains("English (English)")').replaceWith('<a href="#">EN</a>');