Получение innerHTML содержит дополнительный тег <br>, это нормально? - PullRequest
1 голос
/ 27 марта 2012

Когда я создаю новый элемент и начинаю печатать (с 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 голосов
/ 27 марта 2012

Во-первых, этот тег должен быть <br />, а не <br>, во-вторых, div - это элемент блока, и хотя вы не должны видеть тег <br>, вы увидите новую строку после создания div.

Если вы выводите значение innerHTML этого элемента div после его создания, что будет выводом?

...