У меня есть следующий фрагмент HTML:
<span class="target">Change me <a class="changeme" href="#">now</a></span>
Я бы хотел изменить текстовый узел (т. Е. «Измени меня») внутри диапазона из jQuery, оставив при этом вложенный тег <a>
со всеми атрибутами и т. Д. Без изменений. Сначала я использовал .text(...)
на узле span, но, как оказалось , получается , это заменит всю внутреннюю часть переданным текстовым содержимым.
Я решил эту проблему, сначала клонировав тег <a>
, затем установив новое текстовое содержимое <span>
(которое удалит исходный тег <a>
), и, наконец, добавив клонированный тег <a>
в мой <span>
. Это работает, но чувствует себя таким излишним для такой простой задачи, как эта. Btw. Я не могу гарантировать, что внутри промежутка будет начальный текстовый узел - он может быть пустым, например:
<span class="target"><a class="changeme" href="#">now</a></span>
Я тоже сделал jsfiddle . Итак, каков был бы аккуратный способ сделать это?