JQuery text() метод не работает на textNodes:JQuery текст() метод не работает на textnodes
$('div').contents().filter(function(){
return this.nodeType === 3;
}).text("new text");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div>
textNode text doesn't change
</div>
Мой вопрос , что может быть причиной этого?
Это что касается текстовых узлов withhespace, которые трудно обрабатывать? И/или более глубокие текстовые узлы уровня потомков, чем только дочерние?
Я не спрашиваю, как изменить его, я знаю, обходные пути, но почему JQtext()
метод не поддерживает текстовые узлы? Я ожидал бы, используя этот метод, на любом текстовом узле, который сможет изменить значение своего узла.
Я вполне уверен, что для этого есть веская причина, я не могу просто получить ее.
Не просто проверить в 'text()' метод для nodetype textNode, а затем использовать 'nodeValue', чтобы задать текст достаточно простым? –
@ A.Wolff: Да. Это усложняет метод. –
Хорошо, я думаю, что это главная причина, по которой 'jQuery - это элемент-центричный'. Это просто «странно», чем метод «text()» не работает над текстом. –