2016-12-13 2 views
1

У меня возникли проблемы с jQuery, пытаясь удалить текст после тега < span, чтобы добавить другой текст.Удалить текст после <span> и добавить другой текст

Пример:

<div id="foo-id"> 
    <span id="span-id"> 
     <i id="icon-id" class="fa fa-square-o"></i> 
    </span> text..here... (this text needs to be removed) 
</div> 

Я знаю, как добавить текст:

$('#foo-id').after()[0].append('this is a text'); 

Но как я могу удалить/очистить текст после </SPAN> тег для добавления новый?

ответ

8

Предполагая, что нет никаких других текстовых узлов непосредственно в #foo-id вы могли бы сделать что-то вроде:

$('#foo-id').html(function(){ 
 
    return $(this).children(); //only return elements, not text nodes 
 
}).append('Some new text')
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="foo-id"> 
 
    <span id="span-id"> 
 
     <i id="icon-id" class="fa fa-square-o"></i> 
 
    </span> text..here... (this text needs to be removed) 
 
</div>

+0

превосходно. мне это нравится, не поймите меня неправильно, спрашивайте об этом, есть ли учебник по изучению jQuery или лучшей практики Javascript –

+1

@ JishnuVS в Интернете полно учебников и учебных ресурсов – charlietfl

+0

Какой замечательный ответ! Действительно здорово! Большое спасибо!! Надеюсь, этот вопрос/ответ поможет многим людям! – Victor

2

Вы можете выбрать .nextSibling из #span-id, установите .textContent из #text узла

$("#foo-id #span-id")[0].nextSibling.textContent = "abc123";
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="foo-id"> 
 
    <span id="span-id"> 
 
     <i id="icon-id" class="fa fa-square-o"></i> 
 
    </span> text..here... (this text needs to be removed) 
 
</div>

+1

Спасибо за ответ! Я тестировал здесь, и он отлично работает! Я не проверял ваш ответ как лучший, потому что другой друг ответил первым. Большое спасибо! Это еще один способ сделать это! :) – Victor

Смежные вопросы