getElementByClassName方法不返回任何元素

getElementByClassName method returns no elements

本文关键字:任何 元素 返回 方法 getElementByClassName      更新时间:2023-09-26

这应该不是一个困难的任务,但由于各种原因,它一直不工作,我不知道为什么。基本上,我想在下面的代码中删除类名为"def"的段落,但是脚本部分中使用的getElementsByClassName方法似乎无法检测到它,没有返回任何元素:

<!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>
<script language="javascript">
    var elems = document.getElementsByClassName('def');
    alert(elems.length);
    while(elems[0]) {
        elems[0].parentNode.removeChild(elems[0]);
    }
</script>
</head>
<body>
<h1>This is a title</h1>
<p>Sample paragraph</p>
<p>Another sample paragraph</p>
<p class="def"><p id="definition">Text</p></p>
</body>
</html>

有谁知道是怎么回事吗?提前感谢!

<script language="javascript">
    var elems = document.getElementsByClassName('def');
    alert(elems.length);
    while(elems[0]) {
        elems[0].parentNode.removeChild(elems[0]);
    }
</script>

插入到HTML部分之后。

原因:在声明HTML属性之前,脚本正在执行。

编辑

感谢这个评论

或者你可以在JQuery中使用body onload函数

$(document).ready(function() {
// script here
});