Ниже приведен упрощенный отрывок из моего кода:
$('a').on('click', function()
{
// Get the text from the link
var textIwantToUse = $(this).text();
// Set the elements text to that of the link
$('elementIwantToPassTheTextTo').text(textIwantToUse);
}
Проблема у меня есть ссылка содержит span с некоторым текстом я не хочу:
<a href="#">I want this text <span>but not this</span></a>
Как удалить текст в теге span перед тем, как передать его целевому элементу?
Спасибо заранее.
используйте .contents()
и .filter
чтобы выбрать только текстовые узлы, затем возьмите текст из них:
var txt = $('a').contents().filter(function () {
return this.nodeType === 3;
}).text();
$('elementIwantToPassTheTextTo').text(txt);
Пример: http://jsfiddle.net/S95Ls/
Очистка html-тега:
var textIwantToUse = $(this).html().replace(/<span>.*<\/span>/ig, '');
Если вы получите html, чтобы он включал теги <span>
вы можете разделить на него и использовать все до него.
var textIwantToUse = $(this).html().split('<span>')[0];
Вы можете сделать это так, чтобы удалить только внутренний текст из диапазона:
$(this).find('spam').html('');
Это приведет к удалению текста в элементе span или вы также можете удалить весь элемент span, если хотите:
$(this).remove('span')
то делай еще то, что тебе нравится...
var textIwantToUse = $(this).text();
var textIwantToUse = $(this).html();
// or whatever you want to do with it
Пытаться:
$('a').on('click', function () {
var textIwantToUse = $(this).html();
$('.elementIwantToPassTheTextTo').html(textIwantToUse);
$('.elementIwantToPassTheTextTo').find("span").remove();
});