2013-11-15 5 views
1

Мне нужно удалить текст из узла html, но сохранить внутренний HTML Любой, кто знает, как это сделать?Удалить текст из html узла с помощью jQuery/Javascript

Пример:

<td class="ms-list-addnew"> 
    <a class="ms-herocl" id="idHPNewDocument"><span>new document</span></a> 
    or drag files here 
</td> 

Необходимый результат (удалить "или перетащить файлы здесь"):

<td class="ms-list-addnew"> 
    <a class="ms-herocl" id="idHPNewDocument"><span>new document</span></a> 
</td> 

ответ

3

Если вы хотите сохранить то, что у вас есть, это может работать для вас , В противном случае вы можете добавить тег span вокруг него с идентификатором и удалить его.

var text = $(".ms-list-addnew").html() 
text = text.replace("or drag files here",""); 
$(".ms-list-addnew").html(text); 
+0

Проблема с этим состоит в том, что если есть обработчики событий на других узлах, этот метод заставит вас потерять их. – ZekeDroid

+0

Согласен, ответ @Vivin Paliath лучше в этом отношении. – ElliotM

+0

Да, ваш на самом деле аккуратный. Одна проблема, с которой Vivin не обращается, - это что, если вы НЕ МОЖЕТЕ заменить плавающий текст тегом? Это происходит в случае с строкой «Search:» DataTable в панели фильтров. – ZekeDroid

1

Попробуйте это,

Live Demo

$('.ms-list-addnew .ms-herocl')[0].nextSibling.nodeValue = '' 
3

Существует много способов сделать это. Один из способов поместить текст в другой элемент (скажем, span) и использовать .remove():

<td class="ms-list-addnew"> 
    <a class="ms-herocl" id="idHPNewDocument"><span>new document</span></a> 
    <span id="dragText">or drag files here</span> 
</td> 

Тогда:

jQuery("#dragText").remove(); 
1

Использование

$('#idHPNewDocument')[0].nextSibling.nodeValue = null; 
Смежные вопросы