问个innerHTML方面的问题

zx377359832 2009-12-24 03:55:36
我现在想写一个js去扣取网页内的行内css,遇到一些问题希望大家帮忙看看
1.
我的想法是把css扣取出来,并且把html里边的样式给删除掉。发现不可能后,只能找其他办法,于是我就获取body的innerHTML

但是这样获取出来后的东西 跟原来的html区别很大,如何才能获取原来body内的东西
2.
我想设置没有设置id的我给他动态设置个,例如<div style="color:#000000"></div> 我想通过js给他设置成<div id="sd" style="color:#000000"></div>

这一些该怎么处理,只要输出后便于复制皆可不要求非的怎么怎么的

下边是我的代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
<script type="text/javascript" >
window.onload=function(){
var vd=document.body.innerHTML;
var sd=vd.split('"');
var sdf="";
for(var i=0;i<sd.length;i++){
if(i%2==0){
if(i!=(sd.length-1)){
sdf+=sd[i].substring(0,sd[i].length-6);

}else{
sdf+=sd[i]
}

}

}
document.body.innerText=sdf;
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div id="sdv" style="background-color:Red;">
xdgsdghsd
</div>
<div id="Div1" style="background-color:Red;">
xdgsdghsd
</div>
</form>
</body>
</html>


<script language="javascript" type="text/javascript">
window.onload=function()
{
var dir = location.href.substring(0,location.href.lastIndexOf('/')+1);
var url = location.href.substring(dir.length,dir.length+1);
var la=location.href.substring(location.href.lastIndexOf('.'),location.href.lastIndexOf('.'));
var ccss="";
var dname="div";
var sdv= document.getElementsByTagName(dname);
var bodycont=document.body.innerHTML;
for(var i=0;i<sdv.length;i++){
if(sdv[i].style.cssText!=""){
if(sdv[i].id!=""){
ccss+="#"+sdv[i].id+"<br/>{<br/> "+sdv[i].style.cssText+";<br/>}<br/>";
}else{
ccss+="#"+url+"_"+la+"div"+i+"<br/>{<br/> "+sdv[i].style.cssText+";<br/>}<br/>";
}
}
}
document.body.innerHTML=ccss;

}
</script>
...全文
82 13 打赏 收藏 举报
写回复
13 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
zx377359832 2009-12-24
  • 打赏
  • 举报
回复
哦 那谢谢了 等我试下把
xiongzhijian 2009-12-24
  • 打赏
  • 举报
回复
jquery 可以看看api..很方便的.
kyo_liumiao1 2009-12-24
  • 打赏
  • 举报
回复
删除属性用$("div").removeAttr( name )
zx377359832 2009-12-24
  • 打赏
  • 举报
回复
<div style="color:#000000"></div>

可以变成:

<div id="sd"></div>
kyo_liumiao1 2009-12-24
  • 打赏
  • 举报
回复
上面两句表示:

所有div的style属性设为空,
所有div的id设为你想要的值,如果你要循环设置,就用
$("div").each(function(){
$(this).attr("ID",i++);
})
kyo_liumiao1 2009-12-24
  • 打赏
  • 举报
回复
获取:
$("div").attr("style","");
$("div").attr("ID","XXX");
zx377359832 2009-12-24
  • 打赏
  • 举报
回复
我的想法是运行后直接获取到css 和删除style=“” 还有添加好id的body内容 然后我就可以很简单的css分离了被
kyo_liumiao1 2009-12-24
  • 打赏
  • 举报
回复
搂住还是直接像4楼那样用Jquery吧,很少几句code就能实现了
shenzhenNBA 2009-12-24
  • 打赏
  • 举报
回复
这个思路可以:
1,首先 innerHTML 得到(某个对象的)HTML内容
2,然后得到style开始, 第二个 双引号或单引号 结束其中的内容就是行内的CSS内容
qqzeng-ip 2009-12-24
  • 打赏
  • 举报
回复
$("div").addClass("sd");
千游 2009-12-24
  • 打赏
  • 举报
回复
你这样也太麻烦了
1.我的想法是把css扣取出来,并且把html里边的样式给删除掉。发现不可能后,只能找其他办法,于是我就获取body的innerHTML
:可以直接取到对象的css,并且改变的:
document.getElementById('sd').style.color =""; 直接赋值可以,要删除就style.styleName =""就行了。


2.
我想设置没有设置id的我给他动态设置个,例如 <div style="color:#000000"> </div> 我想通过js给他设置成 <div id="sd" style="color:#000000"> </div>
:也可以的:
var div = document.getElementsByTagName("div");
if(div.style.color == "#000000"")div.id = "sd";
zx377359832 2009-12-24
  • 打赏
  • 举报
回复
额 不会
liu2835993 2009-12-24
  • 打赏
  • 举报
回复
正则表达式,解决此问题
相关推荐
发帖
JavaScript

8.7w+

社区成员

Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
帖子事件
创建了帖子
2009-12-24 03:55
社区公告
暂无公告