2013-11-13 2 views
2

У меня есть строка, которая является простым элементом <a>.Как удалить элемент, но не его содержимое с помощью javascript?

var str = '<a href="somewhere.com">Link</a>' 

Что я хочу, чтобы превратиться в:

Link 

можно удалить </a> часть легко с str.replace("</a>", ""), но как бы я удалить открывающий тег <a href="somewhere.com>?

+0

Если вы имеете дело со строками Javascript, а не с элементами DOM, вы должны использовать регулярное выражение. Дополнительную информацию можно найти в следующем вопросе: http://stackoverflow.com/questions/3790681/regular-expression-to-remove-html-tags – Nunners

+0

'$ (str) .text()' –

ответ

3

Это будет разделите весь тег:

str.replace(/<[^>]+>/g,''); 

И это только первая часть:

str.replace(/<[^/>]+>/g, ''); 
+0

Флаг i (флаг нечувствительности к регистру) не требуется. Скобки также не нужны. Хотя это неприменимо, если контент фактически является «Link», события из/<[^>] +>/g в содержании будут удалены. – orb

+0

Вы правы, я отредактировал свой ответ. – jazZRo

8

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

$('a').contents().unwrap(); 

Но работать с элементами, которые связаны с DOM.For ваш Лучше решение попробовать как

str = ($(str).text()); 

Смотрите эту FIDDLE

+3

OP показывает пример использования строковой переменной javascript, а не элемента DOM. Это решение не сработает, если только он не добавит его в DOM. – Nunners

+0

Смотрите мой второй ans также .... – Gautam3164

2

Поскольку вы используете JQuery, вы можете сделать это на лету следующим

$('<a href="somewhere.com">Link</a>').text() 
0

Вы можете попробовать это,

var str = '<a href="somewhere.com">Link</a>';  
    alert($(str).text()); 
Смежные вопросы