2011-05-24 37 views
41

是否可以使用JQuery清除html选择对象的内容?我有一个函数获取一个列表来填充select并将其附加到select,所以我需要某种方式在添加之前清除以前的数据。清除使用jQuery的选择

回答

84

使用.empty()

$('select').empty().append('whatever'); 

你也可以使用.html()但要注意

.html()用于设置元素的含量,这是在 元素的任何内容完全被新内容取代。考虑下面的HTML:

替代: ---如果你想唯一的选择要素对被删除,请使用.remove()

$('select option').remove(); 
+0

我想你想追加()在这里,而不是appendTo,对不对? – 2011-05-24 09:46:49

+0

因此,您可以清空旧列表并在一行代码中追加新列表?优秀!不应使用 – user517406 2011-05-24 09:47:21

+0

.html(),因为它不会删除任何数据或bount元素。而是使用其他两个(.empty()或.remove())来移除所有数据和绑定元素。 – helios456 2013-02-28 17:05:49

15

如果您不关心任何子元素,例如optgroup,您可以使用empty() ...

$('select').empty(); 

否则,如果只元素option取出,用remove()

$('select option').remove(); 
+1

+1替代 – diEcho 2011-05-24 09:49:07

4
$('option', '#theSelect').remove(); 
1

假设像下面的列表 - 假设一些选项被选中...(这是一个多选,但是这也可以在单个选择上工作。)

<select multiple='multiple' id='selectListName'> 
    <option>1</option> 
    <option>2</option> 
    <option>3</option> 
    <option>4</option> 
</select> 

在某些基于某个事件调用的函数中,以下代码将清除所有选定的选项。 (“#selectListName”)。prop('selectedIndex',-1);

0

Here is一个小的jQuery插件(除其他外)可以清空下拉列表。

只要写:

$('your-select-element').selectUtils('setEmpty');