2012-01-29 167 views
0

我想在这里删除字符串属性,但我想我没有对子节点的引用。 这应该如何工作?删除一个子节点

<!DOCTYPE HTML> 
    <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1"> 
    <script type="text/javascript"> 
     var attrs = document.getElementById('test-1'); 
     attrs.removeAttribute('string'); 
    </script> 
    <mask> 
     <mpath> 
      <font-face-format string="" id="test-1"></font-face-format> 
     </mpath> 
    </mask> 
</svg> 
+0

HTML5文档类型不适用于SVG文档。 – Phrogz 2012-01-29 18:18:06

回答

2

您尝试引用它时,它仍然不存在。

试试你的脚本块像

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">  
    <mask> 
     <mpath> 
      <font-face-format string="" id="test-1"></font-face-format> 
     </mpath> 
    </mask> 
    <script type="text/ecmascript"> 
     var attrs = document.getElementById('test-1'); 
     attrs.removeAttribute('string'); 
    </script> 
</svg> 
+2

我给了你+1,但现在我不得不-1,因为你已经把'

2

化妆用的window.onload移动到文档的末尾,这样一旦创建了元素的代码会被执行。试试

<script type="text/javascript"> 
    window.onload = function(){ 
     var attrs = document.getElementById('test-1'); 
     attrs.removeAttribute('string'); 
}; 
</script> 
+0

...因为@André指出,当您调用getElementById()时,您的''元素还不存在。您必须等到文档加载完毕。 – Phrogz 2012-01-29 17:59:49

+0

'DOMContentLoaded'不会更好吗? – 2012-01-29 18:02:36

+0

感谢您的解释! – 2012-01-29 18:03:46