2016-05-18 7 views
1

私は、言語オプションでいくつかのリストを持っている:)(含まれています()セレクタを使用して要素のテキストを交換し、交換する

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

私はENに各English (English)を変更しようと、ない結果

$('a:contains("English (English)")').html().replace('English (English)', 'EN'); 
ています

どうすればいいですか?

答えて

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>

1

$(".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()

1

あなたは、任意のdiv要素の内容を置き換えるためにreplaceWith()を使用することができます。

$('a:contains("English (English)")').replaceWith('<a href="#">EN</a>'); 
関連する問題