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ていないためです。

scriptの直後 追加するとp、 whenpが既にレンダリングされている場合alert、期待どおりに表示されます。

<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 に答える