获取innerHTML包含额外的标签,这是正常的吗?

时间:2012-03-27 01:33:06

标签: javascript html firefox innerhtml contenteditable

当我创建一个新元素并开始输入(将contentEditable设置为true),然后查看它的innerHTML时,它总是在末尾包含一个额外的<br>。如果我在输入之前查看innerHTML,我会得到正确的值。这是正常的吗?我的问题是我使用<br>标签计算行数,而且我不能让它比我需要的更多。这是一些测试代码(javascript):

var _this = this;
function keyup(event)
{
    if (event.keyCode == 112)
    {
        alert(_this.code.innerHTML);
    }
}
function create()
{
    this.code = document.createElement("div")
    this.code.innerHTML = "Hello world.<br>I like testing popcorn.<br>Testing again.";
    this.code.contentEditable = "true";
    this.code.onkeyup = keyup;
    document.body.appendChild(this.code);
    _this = this;
}
window.onload = function()
{
    create();
}

代码已设置,因此当您按F1时,它会显示div的内容。我使用的是最新版本的Firefox。

1 个答案:

答案 0 :(得分:-1)

首先,该标记应为<br />而不是<br>,其次div是块元素,当您看不到<br>标记时,您会看到一个新行div创建后。

如果在创建div元素之后输出innerHTML值,那么输出是什么?