以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 SVG/GML/VRML/X3D/XAML 』  (http://bbs.xml.org.cn/list.asp?boardid=21)
----  求教:怎么通过id修该不同节点下子节点属性  (http://bbs.xml.org.cn/dispbbs.asp?boardid=21&rootid=&id=36860)


--  作者:taifu
--  发布时间:8/16/2006 6:08:00 PM

--  求教:怎么通过id修该不同节点下子节点属性
<g id="home">
<line id="111" class="K4" fill="rgb(255,255,0)" stroke="rgb(0,255,0)" stroke-width="115" x1="743" x2="743" y1="936" y2="1003"/>
<line id="222" class="K4" fill="rgb(255,255,0)" stroke="rgb(0,255,0)" stroke-width="115" x1="643" x2="643" y1="636" y2="603"/>
</g>
 
<g id="office">
<line id="111" class="K4" fill="rgb(255,255,0)" stroke="rgb(0,255,0)" stroke-width="15" x1="43" x2="73" y1="96" y2="103"/>
<line id="222" class="K4" fill="rgb(255,255,0)" stroke="rgb(0,255,0)" stroke-width="11" x1="43" x2="43" y1="36" y2="63"/>
</g>

请问高手,怎么用javascript语言修改svg中id="office"下的id="111"的classs属性 。  
(<g id="home">和<g id="office">中都有id="111"的子节点),用
SVGDoc=evt.getTarget().getOwnerDocument();
svgObj = SVGDoc.getElementById("111");   
svgObj.setAttribute("class","K5");
只能修改<g id="home">中的id="111"节点。  求救啊!!!!


--  作者:daidaixiong
--  发布时间:8/17/2006 9:41:00 AM

--  
首先,id重名在规范中就是不合法的,不要起相同的id。
可以这样解决,比较笨:
svgobj = SVGDoc.getElementById("office");
var tempnode=svgobj.childnodes.item(1);
tempnode.setAttribute("class","K5");
这样就可以了,但是尽量不要用重复的id。

--  作者:taifu
--  发布时间:8/17/2006 9:44:00 AM

--  
多谢了 多谢了 多谢了 !!!
--  作者:daidaixiong
--  发布时间:8/17/2006 9:50:00 AM

--  
有个错误 应该是childNodes,写成childnodes了
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
46.875ms