узлы теряются после вызова text () для самозакрывающегося элемента - PullRequest
0 голосов
/ 07 февраля 2020

$('#test').text('a')
<p>Hello <span id='test' /> World</p>
<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>

Текст "Мир" теряется после этого.

Если я не закрываю тег span самостоятельно, "Мир" консервы.

Есть ли какие-либо документы по этому поведению?

1 Ответ

1 голос
/ 07 февраля 2020

Диапазон не является самозакрывающимся тегом. Только пустые элементы (например, <input>, <br>) могут иметь такую ​​логику c (где элемент открывается и закрывается одним <...>), но даже тогда /> не подходит что-нибудь. На не пустых элементах, даже если вы введете /> в HTML, браузер будет интерпретировать его как простой открывающий тег, игнорируя /:

console.log(document.querySelector('#test').outerHTML);
<p>Hello <span id='test'/> World</p>

Вы можете использовать его только в качестве самозакрывающегося тега в XML или X HTML или при создании элемента с помощью jQuery, например:

const $elements = $(`<p>Hello <span id='test'/> World</p>`);
console.log($elements[0].outerHTML);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...