使用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