使用Javascript給出以下菜單http://jsfiddle.net/pYJPc/,我將如何迭代所有選項並逐個刪除它們?然後重新添加它們。我不想選擇菜單本身在所有從SELECT菜單中刪除然後重新添加選項元素?
1
A
回答
0
使用jQuery加載被刪除:
var options = $('#menu').children();
children.remove();
$('#menu').insert(children);
同樣,在不同的庫也是如此。
沒有圖書館,你需要多一點的工作:)
0
你的HTML:
<select id="menu" onchange="go()">
<option>--Select a page--</option>
<option value="1">W3Schools</option>
<option value="2">Microsoft</option>
<option value="3">AltaVista</option>
</select>
<input id="remove" type="button" value="remove one" >
<input id="repop" type="button" value="repop">
而且使用jQuery
var buffer=new Array();
$("#remove").click(function() {
buffer.push($("option:first").get(0));
$("option:first").remove();
});
$("#repop").click(function() {
$("select").append(buffer);
});
1
這裏你的JS是做這件事使用香草JavaScript JSFiddle Demo:
這裏是標記HTML:使用cloneNode
備份您的默認選擇選項
//clone our options to a backup
var myselect = document.getElementById('myselect');
var backup = myselect.cloneNode(true).getElementsByTagName('option');
//add backup back into select
function addOption() {
if (myselect.options.length == 0) {
for (var i = 0; i < backup.length; i++) {
myselect.options.add(backup[i].cloneNode(true));
}
}
}
//delete all option in select
function deleteOption() {
while (myselect.options.length != 0) {
myselect.options.remove(myselect.options.length - 1);
}
}
//attach click event to btns
document.getElementById('addbtn').onclick = addOption;
document.getElementById('deletebtn').onclick = deleteOption;
在IE cloneNode原來並沒有真正克隆它:如果沒有選項和deleteOption將刪除所有的選項中選擇你的標籤將addOption添加備份恢復您的選擇。所以,我們必須創建自己的cloneNode,並更改備份:
var backup = IEcloneNode(myselect).getElementsByTagName('option');
//FOR IE
//Reference http://brooknovak.wordpress.com/2009/08/23/ies-clonenode-doesnt-actually-clone/
function IEcloneNode(node) {
// If the node is a text node, then re-create it rather than clone it
var clone = node.nodeType == 3 ? document.createTextNode(node.nodeValue) : node.cloneNode(false);
// Recurse
var child = node.firstChild;
while(child) {
clone.appendChild(IEcloneNode(child));
child = child.nextSibling;
}
return clone;
}
相關問題
- 1. 如何從select元素中刪除一個選項,然後在javascript中選擇另一個select元素
- 2. 克隆行並刪除元素,然後重新添加
- 3. 刪除TextChangedListener然後重新添加它
- 4. 添加新項目後重新填充選擇菜單
- 5. Angular - 從select元素中刪除空選項(?)
- 6. 如何使用jquery從select元素中刪除選項?
- 7. 附加然後刪除元素與jQuery
- 8. 刪除父元素並重新添加子元素
- 9. jQuery將選項添加到select元素,然後將它們還原
- 10. 添加選項元素重置select元素中的滾動位置
- 11. 添加新選項以選擇菜單
- 12. selectAnnotation刪除後,然後重新添加註解
- 13. 從元素中刪除元素而不刪除元素後
- 14. 刪除jQuery中的元素,然後附加一個新的元素?
- 15. 搜索功能,從下拉菜單中選擇添加和刪除選項
- 16. 將元素動態添加到頁面,然後將其刪除
- 17. 添加到ArrayList然後刪除元素的問題
- 18. JQuery - 添加DOM元素,然後將其刪除
- 19. 刪除從列表中的元素,然後選擇一個新的列表
- 20. 如何從聚合物紙菜單中刪除菜單選項
- 21. 我想使用PHP從菜單中添加和刪除項目
- 22. Backbone Collection設置方法刪除現有元素,然後添加所有元素
- 23. Jquery UI - 創建重複的DOM元素,然後添加和刪除類
- 24. jquery表單問題。從選擇框中添加刪除選項
- 25. 錯誤14274 - 無法刪除然後重新添加作業
- 26. 刪除,然後重新添加一個提交的道路
- 27. jQuery的選擇元素之前和元素中刪除後/添加
- 28. 如何從int數組中隨機選擇,然後刪除選中的元素
- 29. 從xml中刪除元素後,XDocument在末尾添加一行
- 30. 從select元素中隱藏選項,在另一個select元素中選中時
你的意思是克隆可選擇保留默認選項然後撈出他們全部重新添加在的Sametime保持選擇右鍵菜單? – kjy112 2011-03-24 16:37:56