Делаю поиск, но столкнулся с проблемой, что скрипт не работает, если текст взят в тег span. Как можно удалить span, чтобы текст остался?
html:
<p>какой то текст <span> здесь </span> находиться</p>
Результат должен быть таким:
<p>какой то текст здесь находиться</p>
Без jQuery можно так:
function removeSpan() {
var elem = document.getElementsByTagName('p')[0]; // берем элемент p
var textInside = elem.textContent; // сохраним текст из p
var child = document.getElementsByTagName('span')[0]; // берем элемент span
elem.removeChild(child); // удалим span из p
elem.textContent = textInside; // перезапишем текст в p
}
<p>Какой то текст<span> здесь </span>находится</p>
<button onclick="removeSpan()">Удалить span</button>
Для случая, когда элемент p и span всего один - будет работать. В противном случае можно добавить к элементам id и вместо getElementsByTagName вызывать getElementById.
Простой вариант:
$('p').html( $('p').text() );
p {color: red}
span {color: blue}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>какой то текст <span> здесь </span> находиться</p>
Если у вас много тегов и вам нужно достать только с одного, то можно таким воспользоваться:
$('.b').replaceWith(function() {
return $(this).text();
});
p {color: red}
span {color: blue}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>какой <span class="a">то</span> текст <span class="b"> здесь </span> находиться</p>
Для удаления лишнего тега можете попробовать так:
var str = "<p>какой-то текст <span>здесь</span> находится</p>";
var searchText = $(str).text();
console.log(searchText );
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости