2017-04-17 98 views
-1

比方說,我有以下HTML:如何使用jQuery將文本附加到選擇選項文本的末尾?

<select id="dept"> 
<option value="1" selected>General</option> 
<option value="2">Payment Problems</option> 
</select> 

在這種情況下我想改變GeneralGeneral (current)。選項文本也是動態的。我只想在選項文本的末尾附加(current)

我該怎麼做?

在此先感謝

+0

是否總是字'(電流)'不管哪個被選中? – LGSon

+0

是的,我總是希望在選項文本 –

回答

1

這裏有一種方法

$("#dept option[value='1']").append(' (current)');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select id="dept"> 
 
    <option value="1" selected>General</option> 
 
    <option value="2">Payment Problems</option> 
 
</select>

+0

之後加上'(current)'謝謝,因爲它使用了jQuery,所以我將它標記爲答案。 int11也發佈了一個很好的選擇,可以在常規JS中使用。 –

+0

@JDel謝謝......是的,他/他做了 – LGSon

1

這個怎麼樣?

var current_text = $("#dept :selected").text(); 
 
$("#dept :selected").text(current_text + " (current)");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 
 
<select id="dept"> 
 
<option value="1" selected>General</option> 
 
<option value="2">Payment Problems</option> 
 
</select>

+0

我希望有某種方式可以做'+ =「(current)」'你怎麼可以做'document.getElementById(「element」)。在JS中,innerHTML + =「要追加的值」。這不可能嗎? –

+0

這樣的事情? https://jsfiddle.net/4h2mbnaf/ – int11

+0

這很完美,謝謝! –

0

$('select').change(function(){ 
 
var valu = $(this).val(); 
 
var text = $(this).find('option:selected').text(); 
 
text += ' (current)'; 
 
$(this).find("option:contains('current')").each(function(){ 
 
var txt = $(this).text().replace('(current)','') 
 
$(this).text(txt); 
 
}); 
 
$(this).find('option:selected').text(text); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select id="dept"> 
 
<option value="1" selected>General</option> 
 
<option value="2">Payment Problems</option> 
 
</select>

1

這是一個輕微的改善由@LGSon原來的答案。該版本可確保「當前」總是附加到當前選定的選項(我認爲「值」屬性保持不變時,選擇更改):

$('#dept option[selected=""]').append(' (Current)'); 
相關問題