问题
How can I change the text of an option with jQuery?
I'd like to change Newest with Oldest in an option is a <select> element.
$('select option:contains("Newest")').changeText('Oldest');
.replaceWith would not work for me.
Thanks.
----Update----
If my script looks like this:
$('select option:contains("Newest")').text('Oldest');
$('select option:contains("Oldest")').text('Newest');
Then I'm canceling out the first script, however, that isn't what I want. I have two options one that reads "Newest" which I'd like to replace with "Oldest" and one that reads "Oldest" which I'd like to replace with "Newest". How can I accomplish that?
回答1:
You should start a new question but here's the answer:
$('select option:contains("Newest")').text('TEMPEST');
$('select option:contains("Oldest")').text('Newest');
$('select option:contains("TEMPEST")').text('Oldest');
回答2:
$("#mySelect option").html(function(i,str){
return str.replace(/Newest|Oldest/g, // here give words to replace
function(m,n){
return (m == "Newest")?"Oldest":"Newest"; // here give replacement words
});
});
demo : http://jsfiddle.net/diode/eSa5p/2/
回答3:
$('select option:contains("Newest")').each(function(){
var $this = $(this);
$this.text($this.text().replace("Newest","Oldest"));
});
http://jsfiddle.net/eSa5p/
EDIT: Answer to the new question:
var $newest = $('select option:contains("Newest")');
$('select option:contains("Oldest")').text('Newest');
$newest.text('Oldest');
http://jsfiddle.net/eSa5p/3/
回答4:
Change text of the selected option:
$("#select").find("option:selected").text('Newest');
回答5:
$('select option:contains("Newest")').addClass('changeToOldest');
$('select option:contains("Oldest")').addClass('changeToNewest');
$('.changeToOldest').text('Oldest').removeClass('changeToOldest');
$('.changeToNewest').text('Newest').removeClass('changeToNewest');
来源:https://stackoverflow.com/questions/9459073/change-the-text-of-a-option-with-jquery