2011-05-24 38 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');