这不应该是一项艰巨的任务,但由于任何原因,它一直无法工作,我无法弄清楚原因。基本上,我想在下面的代码中删除类名为“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>
任何人都知道出了什么问题?提前谢谢!
答案 0 :(得分:1)
<script language="javascript">
var elems = document.getElementsByClassName('def');
alert(elems.length);
while(elems[0]) {
elems[0].parentNode.removeChild(elems[0]);
}
</script>
在HTML部分之后插入。
原因:在声明HTML
属性之前正在执行脚本。
修改强>
感谢comment
或者你可以在JQuery中使用body onload函数
$(document).ready(function() {
// script here
});