江江之家

技术摘记随笔(软件开发、项目管理)

导航

SVG资料收集

 
下面的例子展示了通过 DOM 接口如何删除现有节点,添加新的节点并为新节点设置了超级链接地址


<g onclick="operate_Dom()"  id="g5" transform="translate(0 80)">
   <text id="txt1" x="6px" y="30px" style="font-size:15">operate DOM</text>
   <text id="txt2" x="6px" y="50px" style="font-size:15">operate DOM</text>
</g>
<!-内嵌脚本代码'
<script language="javascript"><![CDATA[
function operate_Dom(){
 //通过document环境变量获取id值为"g5"的节点
 var g5=document.getElementById("g5");
    //将g5节点下所有text节点删除
 var txts=g5.getElementsByTagName("text");
 for(var i=txts.length-1;i>=0;i--){
  g5.removeChild(txts.item(i));
 }
 //将g5节点的onclick事件删除
 g5.removeAttribute("onclick");
 
 //创造一个文本节点对象
 var text = document.createElement ("text");
 text.setAttribute("x", 100);
 text.setAttribute("y", 100);
 //将文本内容添加到text节点对象中
 text.appendChild(document.createTextNode("new text"));
 
 //创造一个链接节点,注意在这里给设置节点和属性时必须指定命名空间
 var a=document.createElementNS("http://www.w3.org/2000/svg","a");
 a.setAttributeNS(
   "http://www.w3.org/2000/xlink/namespace/",
   "xlink:href",
   "http://www.sina.com");
 //将text节点添加到链接节点中
 a.appendChild(text);
 
//将链接节点添加到g5节点中
 g5.appendChild(a); 
    
//获取视图范围
var bBox=(document.getDocumentElement().getBBox());
//创建一个矩形节点
var shape = document.createElement("rect ");
//配置属性
shape.setAttribute("x", bBox.x);
shape.setAttribute("y", bBox.y);
shape.setAttribute("width",  bBox.width);
shape.setAttribute("height",   bBox.height);
shape.setAttribute("style", "fill: #eeeeee");
shape.getStyle().setProperty("stroke","red");
shape.getStyle().setProperty("stroke-width","1");
 //将矩形节点添加到SVG根节点子节点队列的最前边
document.getDocumentElement().insertBefore(shape,document.getDocumentElement().firstChild);
}
]]></script>

posted on 2005-06-30 16:46  江江  阅读(1155)  评论(0编辑  收藏  举报