1
<title>New Web Project</title>
        <script type="text/javascript">
            var paras = document.getElementsByTagName("p");
            for (var i=0; i< paras.length; i++) {
            var title_text = paras[i].getAttribute("title");
            if (title_text != null) {
                alert(title_text);
                }
            }

        </script>
    </head>
    <body>
        <h1>New Web Project Page</h1>
        <p title="test"> This is just a test</p>
    </body>

为什么警报没有价值?我觉得它应该弹出文本test

4

2 回答 2

6

因为在script评估时p没有加载。

如果在, when已经渲染script添加正确的,它将按预期显示: ppalert

<p title="test"> This is just a test</p>
<script type="text/javascript">
  var paras = document.getElementsByTagName("p");
  for (var i=0; i< paras.length; i++) {
    var title_text = paras[i].getAttribute("title");
    if (title_text != null) {
      alert(title_text);
    }
}
</script>

演示

于 2012-08-30T01:34:47.810 回答
2

因为您在呈现 html 元素之前初始化脚本。

将脚本移至底部或等待 DOM。像这样:

<html>
<head>
<title>New Web Project</title>
    <script type="text/javascript">
        window.onload = function(){
            var paras = document.getElementsByTagName("p");
            for (var i=0; i< paras.length; i++) {
            var title_text = paras[i].getAttribute("title");
            if (title_text != null) {
                alert(title_text);
                }
            }
        }
    </script>
</head>
<body>
    <h1>New Web Project Page</h1>
    <p title="test"> This is just a test</p>
</body>
</html>
于 2012-08-30T01:34:57.937 回答