2014-09-10 2 views
-4

Это, кажется, не работает, я получаю сообщение об ошибке Uncaught Type на .remove() линии:Как удалить элемент из строки HTML?

JS:

var str = $("a").html(); 
var $html = $.parseHTML(str); 
$("i",$html).remove(); 

$("div").html($html); 

HTML:

<a href="#">Hello <i>Bob</i></a> 
<div></div> 

Как получить эту работу?

+2

Что вы пытаетесь достичь? – DeFeNdog

+0

Кажется простым, но убедитесь, что ваша библиотека jQuery импортирована правильно. Обычно я получаю аналогичную ошибку, если моя ссылка на jQuery отключена. – ckpepper02

+0

@DeFeNdog Удалить '' из '', довольно прямолинейно –

ответ

2

Вы можете удалить теги HTML, используя функцию .text().

var str = $("a").text(); 

$("a").text(str); 

Который приведет:

<a href="#">Hello Bob</a> 

Пример: http://jsfiddle.net/3s1c55w2/

Как это работает:

  1. $("a").text(); будет получать только текст элемента, поэтому в вашем он вернется Hello Bob.
  2. После того, как вы получили Hello Bob, просто установите значение тегов a с помощью .text(str), где str - это значение без тегов html.
+0

Кажется, что люди не могут понять вопрос, см. Править на использование переменной –

+0

. Ваш ответ не работает. –

+0

jsFiddle, который я предоставил, ясно показывает, что это так. Я бы посмотрел, правильно ли настроена ваша реализация jQuery. – Axel

0

Возможно, он пытается удалить метки i из каждого якоря.

http://jsfiddle.net/1fytum86/

$("a").each(function(index) { 
    var str = $(this).text(); 
    $(this).html(str); 
}); 

Во всяком случае, вполне возможно, что он получал ошибку типа, поскольку parseHTML() разбирает строку в массив узлов DOM. Удачи!

0

Если вы пытаетесь удалить курсив и оставить текст:

$("a").html($("a").html().replace(/<\/?i>/g, "")); 

В противном случае, другие ответы, используя либо удалить или отсоединять бы целесообразны.

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