JS删除span问题

hifi38 2008-03-13 09:35:54
现有10个<span>似的可怜见十分</span>,1个按钮。当点击按钮时触发function del(),并删除那10个span


function del()
{
var del_id=id;
var del=document.body.getElementsByTagName("span");
for(k=1;k<del.length;k++)
{
del[k].parentNode.removeChild(del[k]);//这编写只删除第1,3,5,7,9
del[0].parentNode.removeChild(del[0]);//这编写只删除第1,2
}
}
...全文
1062 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
ambitionzfx 2008-08-09
  • 打赏
  • 举报
回复
for(k=0;k<del.length;k++) {
del[k].parentNode.removeChild(del[k]);//可以全部删除吧

}
Anlige 2008-08-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 showbo 的回复:]
更正下,多循环了一次


JScript codefunction del()
{
var del_id=id;
var del=document.body.getElementsByTagName("span");

while(del.length>0)//====
{
del[0].removeNode(true);
}
}
[/Quote]
用dowhile不要用for循环,和select删除option一样~

wtcsy 2008-08-08
  • 打赏
  • 举报
回复
啊门!
cc87654321 2008-08-08
  • 打赏
  • 举报
回复
我是换一种思路,先把所有要删除的节点记住了,然后用document.getElementById 来就会全部删除掉的
//清空轨迹,重新计算
function resave()
{
path="";
clearInterval(id1);
//删除轨迹div
var div = document.getElementsByTagName("div");
var count = div.length;
var temp = "";
//alert(count);
for (var k=0;k<count;k++)
{
var e = div[k];
if (typeof(e)!= "undefined")
{
if (e.id.length>0 && e.id.indexOf("gjdiv")>=0)
{

//e.style.display = "none"; //隐藏而不删除 可以
//e.parentNode.removeChild(div[k]); //删除 不可以 只能删除一半的节点
temp += e.id + "," ; //记下所有要删除的点。
}
}
}

if (temp.length>0)
{
temp = temp.substr(0, (temp.length) - 1);
}

//删除
var ary = temp.split(",");
count = ary.length;
for(var i = 0 ; i < count ; i ++ )
{
var gjdiv = document.getElementById(ary[i]);
gjdiv.parentNode.removeChild(gjdiv);
}

//重新开始计算
a();
}
t122 2008-03-13
  • 打赏
  • 举报
回复
不好意思,上面只去掉<span>与</span>,下面的完整代码是去掉<span>与</span>,包含之间内容的例子


<html>
<head>
<title>删除span问题</title>
<script language=javascript>
function del(){
var html=document.body.innerHTML;
html = html.replace(/<SPAN[^>]*>[^<]*<\/span>/gi, "" );
alert(html);
document.body.innerHTML=html;
}
</script>
</head>
<body>
<span> 似的可怜见十分 </span><span> 似的可怜见十分 </span><span> 似的可怜见十分 </span>其余内容1<span> 似的可怜见十

分 </span><span> 似的可怜见十分 </span><span> 似的可怜见十分 </span><span> 似的可怜见十分 </span>其余内容2<span> 似

的可怜见十分 </span><span> 似的可怜见十分 </span><span> 似的可怜见十分 </span>其余内容3
<input type=button onclick="javascript:del()" value=test>
</body>
</html>
iamXiaMi 2008-03-13
  • 打赏
  • 举报
回复
innerHTML = ''
t122 2008-03-13
  • 打赏
  • 举报
回复
用如下函数一并搞定

function del(){
var html=Document.Body.InnerHTML;
html = html.replace(/<\/?SPAN[^>]*>/gi, "" );
}
hifi38 2008-03-13
  • 打赏
  • 举报
回复
谢谢 showbo 的帮助!
  • 打赏
  • 举报
回复
更正下,多循环了一次

function del()
{
var del_id=id;
var del=document.body.getElementsByTagName("span");

while(del.length>0)//====
{
del[0].removeNode(true);
}
}
  • 打赏
  • 举报
回复
function del()
{
var del_id=id;
var del=document.body.getElementsByTagName("span");
/*for(k=1;k<del.length;k++)//不要这样删除,这样数组就少循环了
{
del[k].parentNode.removeChild(del[k]);//这编写只删除第1,3,5,7,9
del[0].parentNode.removeChild(del[0]);//这编写只删除第1,2
}*/
//使用while循环
while(del.length>=0)
{
del[0].removeNode(true);
}
}
tantaiyizu 2008-03-13
  • 打赏
  • 举报
回复
del[k].remove();

28,409

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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