Javascript 删除子节点

Javascript 删除子节点,javascript,dom,svg,Javascript,Dom,Svg,我试图删除这里的string属性,但我想我没有对子节点的引用。 这应该如何工作 <!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.getElementB

我试图删除这里的string属性,但我想我没有对子节点的引用。 这应该如何工作

<!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>

var attrs=document.getElementById('test-1');
属性removeAttribute('string');

当它仍然不存在时,您试图引用它

尝试将脚本块移动到文档末尾,如

<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>

var attrs=document.getElementById('test-1');
属性removeAttribute('string');

当它仍然不存在时,您试图引用它

尝试将脚本块移动到文档末尾,如

<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>

var attrs=document.getElementById('test-1');
属性removeAttribute('string');

使用
窗口。onload
以便在创建元素后执行代码。试试这个

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

window.onload=函数(){
var attrs=document.getElementById('test-1');
属性removeAttribute('string');
};

使用
窗口。onload
以便在创建元素后执行代码。试试这个

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

window.onload=函数(){
var attrs=document.getElementById('test-1');
属性removeAttribute('string');
};

…因为,正如@André所指出的,当您调用
getElementById()
时,您的
元素还不存在。您必须等待文档加载。如果调用
getElementById()
,则
DOMContentLoaded
不是更好吗?…因为正如@André所指出的,您的
元素还不存在。您必须等待文档加载。
DOMContentLoaded
不是更好吗?我给了您+1,但现在我必须-1,因为您已将
放在
之外。把它移回去,你会再次得到+1。另外,请注意,SVG中
的正确mime类型是省略属性,或者使用
text/ecmascript
:)Doctype毫无意义。我只是关注手头的问题,我没有检查我给你的整个代码+1,但现在我必须-1,因为你把
放在
之外。把它移回去,你会再次得到+1。另外,请注意,SVG中
的正确mime类型是省略属性,或者使用
text/ecmascript
:)Doctype毫无意义。我只是关注手头的问题,没有检查整个代码。HTML5 Doctype不适合SVG文档。HTML5 Doctype不适合SVG文档。