2013-02-11 77 views
1

假设我们在html选择 即select,Male,Female中有三个选项。 点击我想用“”取代select。用空值替换选项

我试过下面的代码。

<select id="ageID"> 
    <option value="none" >loading...</option> 
    <option value="one" >one</option> 
    <option value="two">two</option> 
    <option value="three">three</option> 
</select> 

$("#ageID").on("click",function(){ 

    $(this).children().first().remove(); 
    $(this).children().first().before(" <option value='none' > </option>"); 

}); 

它在谷歌浏览器上完美工作,但不是在Mozilla或IE。 你可以尝试使用http://jsfiddle.net/ 请提供一个解决方案

+0

请说明哪些项目没有FF/IE工作。 – 2013-02-11 10:53:19

+0

为什么在点击时删除“加载...”,而不是在加载完成时加载完成? – 2013-02-11 11:05:06

+0

我无法在FF中选择新添加的选项(空值)。并在IE中,下拉菜单出现几秒钟,然后消失 – prakash 2013-02-11 11:55:27

回答

0

你可以做到这一点运行:

$("#ageID").on("click focus",function(){ 
    this.options[0].text=''; 
}); 

Demonstration

我加入了focus事件,因为我以为你想做成与变化尽快(只有click才会这样)。

+0

这适用于FF,但不适用于chrome – prakash 2013-02-11 11:56:51

+0

@prakash我在Chrome中测试它。你有什么问题(和版本的铬)? – 2013-02-11 12:03:12

+0

抱歉它在FF中有效。不在IE中。下拉菜单在一小部分时间内出现并消失 – prakash 2013-02-11 12:50:11

0

试试这个:

$("#ageID").on("click",function(){ 

    $(this).children().first().remove(); 
    $(this).children().first().before('<option value="none"> </option>'); 

}); 
-1

你可以用简单的CSS模仿这样的:

小提琴:http://jsfiddle.net/E4ah9/

HTML

<select id="ageID"> 
    <option value="none" disabled selected class="placeholder">loading...</option> 
    <option value="one" >one</option> 
    <option value="two">two</option> 
    <option value="three">three</option> 
</select> 

CSS

.placeholder { display: none; } 
+1

不适合我。 – 2013-02-11 10:59:35

+0

它不立即删除第一个项目,但选择一个项目后,“占位符”不再可用,这是什么被问(如果我正确解释问题) – 2013-02-11 11:01:54

0

为什么不试试这个:

$("#ageID").on("click",function(){ 
    $('option:first',this).text(''); 
}); 
0

我想你想是这样的

$("#ageID").on("click",function(){ 

    $(this).children().first().remove(); 
    $(this).prepend("<option value='' ></option>"); 

}); 
+0

这也不工作FF – prakash 2013-02-11 12:49:04

+0

你试过清洗firefox/IE缓存? – writeToBhuwan 2013-02-11 12:52:31