У меня есть div вроде:
<div id="one">
<div class="first"></div>
"Hi I am text"
<div class="second"></div>
<div class="third"></div>
</div>
Я пытаюсь изменить только текст с «Привет, я текст» на «Привет, я заменяю» с помощью jquery. Это может быть легко, но я не могу этого сделать.
Использование $('#one').text('')
просто очищает весь #One
div.
javascript
jquery
Manojadams
источник
источник
Ответы:
Текст не должен быть сам по себе. Поместите это в
span
элемент.Измените его на это:
источник
Найдите текстовые узлы (
nodeType==3
) и заменитеtextContent
:Живой пример: http://jsfiddle.net/VgFwS/
источник
Вам нужно установить текст не в пустую строку. Кроме того, это должна делать функция .html (), сохраняя при этом HTML-структуру div.
источник
Если вы действительно знаете текст, который собираетесь заменить, вы можете использовать
http://jsfiddle.net/5rWwh/
Или
$('#one').contents(':not(*)')
выбирает дочерние узлы, не являющиеся элементами, в этом случае текстовые узлы, а второй узел - это тот, который мы хотим заменить.http://jsfiddle.net/5rWwh/1/
источник
jQuery 1.8.3
$('#one').contents(':not(*)')
ничего не выберет.Другой подход - сохранить этот элемент, изменить текст, а затем добавить этот элемент обратно.
источник
На всякий случай, если вы не можете изменить HTML. Очень примитивно, но коротко и работает. (Он очистит родительский div, поэтому дочерние div будут удалены)
источник