【问题标题】:Replace element text using contains() selector and replace()使用 contains() 选择器和 replace() 替换元素文本
【发布时间】:2016-09-14 13:57:06
【问题描述】:

我有几个带有语言选项的列表:

<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');

我做错了什么?

【问题讨论】:

    标签: jquery html contains


    【解决方案1】:

    您没有更新元素文本,只是更新返回的字符串。将 html() 与基于旧 html 内容更新的函数一起使用。

    $('a:contains("English (English)")').html(function(i, v) {
      return v.replace('English (English)', 'EN');
    });
    <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>

    【讨论】:

      【解决方案2】:

      $(".dropdown-menu").find('li a').filter(function() {
        return $(this).text() == 'English (English)';
      }).text('EN');
      <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>

      使用.filter()

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          猜你喜欢
          • 2022-07-11
          • 2011-09-09
          • 1970-01-01
          • 2011-02-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-10-11
          • 1970-01-01
          相关资源
          最近更新 更多