无法在Javascript函数中访问span标记的innerHTML

时间:2013-05-16 16:32:51

标签: javascript asp.net html

我正在尝试创建一个电子邮件消息(当用户单击链接时),其正文中预先填充了asp:Literal中的文本。 HTML编写如下:

<tr>
    <td>
        <img src="../../images/Question.gif" alt="Q" />
        Q:
        <span id="question"><asp:Literal ID="literalQuestion" runat="server"></asp:Literal></span>
    </td>
</tr>
<tr>
    <td>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="../../images/Answer.gif" alt="Q" />
        A:
        <span id="answer"><asp:Literal ID="literalAnswer" runat="server"></asp:Literal></span>
    </td>
</tr>
<tr>
    <td>
        &nbsp;
    </td>
</tr>
<tr>
    <td>
        Click <a href="#" onclick="javaScript:emailWrongInfo()">Here</a> to email.
    </td>
</tr>

我还有一个JavaScript函数,可在用户点击电子邮件链接时打开电子邮件:

function emailWrongInfo() {
            window.location="mailto:Test@test.com?Subject=Email%20Notification&Body=Question:%0A" + document.getElementById("question").innerHTML+ "%0A%0AAnswer:%0A" + document.getElementById("answer").innerHTML;
    }

当我点击该链接时,会打开新的电子邮件,但问题和答案未填写在正文部分中。似乎跨度文本没有被拉动。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

请尝试更改:

    document.getElementById("question").textContent 

    document.getElementById("question").innerHTML

答案 1 :(得分:0)

使用HTMLElementObject.innerHTML代替elementNode.textContent。

HTMLElementObject.innerHTML用于获取元素的内部HTML而textContent属性返回或设置所选元素的文本。

function emailWrongInfo() {
            window.location="mailto:Test@test.com?Subject=Email%20Notification&Body=Question:%0A" + document.getElementById("question").innerHTML+ "%0A%0AAnswer:%0A" + document.getElementById("answer").innerHTML;
    }

希望,它会解决你的问题。