JS获取生成的textnode的值

时间:2011-07-01 10:45:09

标签: javascript textnode

我在for循环中有这个Javascript:

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 个答案:

答案 0 :(得分:5)

因为您试图获取Element节点的nodeValue而不是Text节点。

alert (renderAElements[i].firstChild.nodeValue);

答案 1 :(得分:1)

这是因为a元素包含另一个元素而不是值。如果您想从节点中获取文本,则需要执行

renderAElements.childNodes[0].nodeValue

renderAElements.innerText

答案 2 :(得分:0)

Check this out

<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>

答案 3 :(得分:0)

试试这个alert (renderAElements[i].firstChild.nodeValue);