[问题] 怎么修改option的text

楼主: knives   2013-12-19 18:17:21
我有一个需求需要 让 <select> 如果没有选择的时候
将里面的option 里面的text只显示前两个字
当该select 被选择到的时候,又会恢复原来的字符
然后离开select 的时候,又只显示前两个字
我目前是这样写
$('option').each(function(){ //一开始加载的时候,把原来的字符存到old_text
var old_text = $(this).text();
$(this).attr('old_text',old_text);
$(this).text(old_text.substring(0,2));
});
$('select').click(function(){ //当按下select,还原字符
$(this).children('option').each(function(){
//$(this).attr('old_text',old_text);
$(this).text($(this).attr('old_text'));
});
});
$('select').change(function(){
$(this).children('option').each(function(){
$(this).text($(this).attr('old_text').substring(0,2));
});
});
$('select').blur(function(){//离开的时候,又再变成两个字
$(this).children('option').each(function(){
$(this).text($(this).attr('old_text').substring(0,2));
});
});
问题来了,当我选择了某一个选项之后,并不会马上 做blur或change
一定得我要手动点网页其他地方,才会变成两个字
请问该怎么改才好
谢谢回复
作者: akiratw   2013-02-19 21:44:00
http://jsfiddle.net/9kAPr/1/ 这样吗?不过我不知道你原本的错在哪XD
作者: DeathWatch (爱情模糊理论)   2013-02-19 21:49:00
绑onchange?
楼主: knives   2013-02-20 08:21:00
好了,可是还是不知道那里错

Links booklink

Contact Us: admin [ a t ] ucptt.com