2012-02-27 64 views
13

如何使用jQuery更改选项的文本?使用jQuery更改选项的文本

我想更改最旧的选项是<select>元素。

$('select option:contains("Newest")').changeText('Oldest'); 

.replaceWith不适合我。

谢谢。

---- ----更新

如果我的剧本是这样的:

$('select option:contains("Newest")').text('Oldest'); 
$('select option:contains("Oldest")').text('Newest'); 

然后我抵消第一个脚本,不过,这不是我想要的。我有两个选项,一个是我想用“最旧”替换的“最新”,另一个是我想用“最新”替换为“最旧”的一个。我怎么能做到这一点?

+0

确实[文本()(http://api.jquery.com/text/)不是为你工作? – 2012-02-27 01:41:23

+0

您的语法已损坏。你在哪里找到'.changeText'方法? – 2012-02-27 01:43:46

+0

@amnotiam这是一个占位符来显示我想要完成的任务 – henryaaron 2012-02-27 01:44:36

回答

33

你应该开始一个新的问题,但这里的答案:

$('select option:contains("Newest")').text('TEMPEST'); 
$('select option:contains("Oldest")').text('Newest'); 
$('select option:contains("TEMPEST")').text('Oldest'); 
+1

这是一个不必要的dom第三个查询。一旦你创建了一个jquery对象,它就会维护它在创建时匹配的元素列表。只需在修改之前将jquery对象保存到变量中。无需查询额外的时间。 – 2012-02-27 20:14:41

+1

我喜欢创造力,+1 – henryaaron 2012-02-28 00:20:01

2
$('select option:contains("Newest")').each(function(){ 
    var $this = $(this); 

    $this.text($this.text().replace("Newest","Oldest"));  
});​ 

http://jsfiddle.net/eSa5p/

编辑:回答新问题:

var $newest = $('select option:contains("Newest")'); 

$('select option:contains("Oldest")').text('Newest'); 
$newest.text('Oldest'); 

http://jsfiddle.net/eSa5p/3/

+0

谢谢,你能帮助我更新的问题吗? – henryaaron 2012-02-27 01:50:08

+0

解答已更新。 – 2012-02-27 02:34:08

+0

不幸的是,这并不适用于我,虽然它一直是首选 – henryaaron 2012-02-28 00:23:33

0
$('select option:contains("Newest")').addClass('changeToOldest'); 
$('select option:contains("Oldest")').addClass('changeToNewest'); 
$('.changeToOldest').text('Oldest').removeClass('changeToOldest'); 
$('.changeToNewest').text('Newest').removeClass('changeToNewest'); 
+0

当需要两次时,您正在查询DOM 4次。一旦你创建了一个jquery对象,它就会维护它在创建时匹配的元素列表。只需在修改之前将jquery对象保存到变量中。不需要额外查询2次,并且不必要地添加和删除类。 – 2012-02-27 20:15:59

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

演示:http://jsfiddle.net/diode/eSa5p/2/