5

私はこのJavascriptをforループに持っています:

renderAElements[i] = document.createElement ("a");
        renderAElements[i].setAttribute("href", "#");
        renderAElements[i].setAttribute("class", "expander");
        renderAElements[i].appendChild(expand);

        alert (renderAElements[i].nodeValue);

expand は次のように作成されます。

var expand = document.createTextNode("+");

作成された各要素のリンク テキストを返すアラートは、null を返します。どうしてこれなの?

4

4 に答える 4

5

nodeValueText ノードではなく Element ノードを取得しようとしているためです。

alert (renderAElements[i].firstChild.nodeValue);
于 2011-07-01T10:48:18.947 に答える
1

これは、a 要素に値ではなく別の要素が含まれているためです。ノードからテキストを取得したい場合は、次のいずれかを行う必要があります

renderAElements.childNodes[0].nodeValue

また

renderAElements.innerText
于 2011-07-01T10:51:05.427 に答える
0

これをチェックしてください

<head>
    <script type="text/javascript">
        function GetTextNode () {
            var textContainer = document.getElementById ("textContainer");
            var textNode = textContainer.firstChild;
            alert (textNode.data);
        }
    </script> 
</head>
<body>
    <div id="textContainer">This is a simple text in the container.</div>
    <button onclick="GetTextNode ()">Get the contents of the container</button>
</body>
于 2011-07-01T10:49:47.620 に答える
0

これを試してalert (renderAElements[i].firstChild.nodeValue);

于 2011-07-01T10:53:46.453 に答える