js添加删除父节点

沧半闲 2012-04-18 02:11:04
现在有一个:

<select id="s1" size="4" >
<option value="key0" >text0</option>
<option value="key1" >text1</option>
<option value="key2" >text2</option>
<option value="key3" >text3</option>
<option value="key4" >text4</option>
<option value="key5" >text5</option>
</select>

我想在 <option>节点外 添加一个 <span style='display:none'></span> 来控制其 隐藏
并且还有可能 再将 这个<span style='display:none'></span> 去掉
那Js该如何使用DOM实现?
现提供 隐藏和现实的optin序号为2 即key2这行option
document.getElementById("s1").options[2]
如何隐藏 并重新显示
...全文
626 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
沧半闲 2012-04-19
  • 打赏
  • 举报
回复
IE和FF下 正常 chrome这句报错
sel.insertBefore(span.getElementsByTagName("option")[0], sel.options[n]);
我换成
sel.insertBefore(span.getElementsByTagName("option")[0], span);
就OK了 不过若是多次点击隐藏chrome还是会报错
看来chrome对于options的识别很独特啊 看来为了统一只能用nextSibling去一个一个判断了

我昨晚最终想的是用 cloneNode和replaceChild 不过条条大路通罗马

非常感谢
2012-04-18
  • 打赏
  • 举报
回复

<!doctype html >
<html>
<head>
<title> new document </title>
<script type="text/javascript">
function hide(n){
var sel = document.getElementById("s1");
var span = document.createElement("span");
span.style.display = "none";
span.id = "span" + n;
sel.insertBefore(span, sel.options[n]);
span.appendChild(sel.options[n]);
};
function show(n){
var sel = document.getElementById("s1");
span = document.getElementById("span"+n);
if(span){
sel.insertBefore(span.getElementsByTagName("option")[0], sel.options[n]);
sel.removeChild(span);
}
};
</script>
</head>
<body>
<select id="s1" size="4" >
<option value="key0" >text0</option>
<option value="key1" >text1</option>
<option value="key2" >text2</option>
<option value="key3" >text3</option>
<option value="key4" >text4</option>
<option value="key5" >text5</option>
</select>
<input type="button" value="隐藏" onclick='hide(2)' />
<input type="button" value="显示" onclick='show(2)' />
</body>
</html>

用xytree 实现的文档管理器,可以随意增加/删除自己的文档节点. 可以在文档中添加图片,文件链接,可以给文字添加着重色,改变字体大小. 是一个灵巧的资料管理器. 解压缩后运行Index.hta 即可, 打开后参考里面的使用说明: 1. 添加节点: 在左边的文本框输入文档名称, 点击添加,即可增加新节点到当前目录下. 2. 删除节点: 勾上需要删除的节点,点击删除, 只会删除子节点, 不会删除父节点. 3. 改名字: 单击需要改名字的节点, 填写新名字, 点击"改名字". 4. 移动节点: 单击需要移动的节点, 低级"移动到...", 会弹出一个新窗口. 在新窗口中选择父节点, 将移动整个子节点树到新的父节点下. 5. 上下移动: 点击上箭头和下箭头来移动当前节点. 6. 添加文档内容: 选中节点,点击"编辑", 即可实现文本输入. 可以改变选中的文本的大小,颜色,状态等. 7. 添加链接: 在浏览窗口添加需要作为链接的文档或HTTP 地址, 点击添加. 8. 移除链接: 点击节点, 点击"移除". 9. 添加图片: 在浏览窗口选择图片, 点击"图片"按钮. 10.文档备份: 文档的所有修改会产生一个备份,位置在\Backup\下. 11.资源文件: 资源文件\xyTree\config.xml, 目录树位于此处. 请不要手动修改次文件, 以免造成不必要的数据丢失或者软件崩溃. 注意,根结点没有文档功能; 要改变字体颜色和显示状态, 必须先选中需要改变的文字. -- by talence@tom.com

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧