Подтвердить что ты не робот

JQuery: как удалить текст, но не элементы children

Можно ли удалить с помощью jQuery только текст в node, но не в дочерних элементах?

спасибо

4b9b3361

Ответ 1

Вот моя идея:

function removeText(element){
    var newElement = $('<' + element[0].nodeName + '/>');
    element.children().each(function(){
        newElement.append(this);
    });
    element.replaceWith(newElement);
}

Ответ 2

Лучшее и простое решение для удаления всех текстовых элементов из определенного div

$("#firstDiv").contents().filter(function(){
    return (this.nodeType == 3);
}).remove();

Ответ 3

Это работает для меня:

$(elem).html($(elem).html().replace($(elem).text(),''));

Это устанавливает содержимое html без текстового содержимого, это означает, что любой тег html внутри элемента будет сохранен без изменений.

перед:

<div>Hello<input type="text" name="username" value="world!"/></div>

после

<div><input type="text" name="username" value="world!"/></div>

до свидания

Ответ 4

вы не можете этого сделать. Если он не обернут элементом.

Ответ 5

$('#someElement').text('');