Я обнаружил странное поведение HTMLelement.innerText
, которое не могу понять.Вот пример вопроса:
// HTML
<div>
<article id="editor"></article>
</div>
// JavaScript
var editor = document.getElementById('editor');
console.log(editor.innerHTML); // prints "\n"
// From 3rd party libraries
var jqueryExample = jquery.parseHTML('<div><article></article></div>')[0];
console.log(jqueryExample.innerHTML); // prints ""
var angularjsExample = angular.element('<div><article></article></div>')[0];
console.log(angularjsExample.innerHTML); // prints ""
Как видите, когда я использую document.getElementById
, элемент innerHTML
имеет по какой-то причине \n
.Однако, если я использую jquery.parseHTML
или angular.element
, он не добавляет \n
и возвращает его как есть.
Интересно, если в HTML больше контента:
// HTML
<div>
<article id="editor">
<h1>Test</h1>
<p>Foo</p>
</article>
</div>
// JavaScript
var editor = document.getElementById('editor');
console.log(editor.innerText); // prints "Test\nFoo"
Но jquery.parseHTML
и angular.element
s innerText
печатает TestFoo
.Почему это ???