2014-09-10 79 views
-4

這似乎並不奏效,我得到了.remove()線的Uncaught Type錯誤:如何從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 2014-09-10 18:33:34

+0

看起來很簡單,但要確保您的jQuery庫已正確導入。如果我對jQuery的引用關閉,我通常會得到類似的錯誤。 – ckpepper02 2014-09-10 18:34:52

回答

2

只需使用.text()函數即可刪除HTML標籤。

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

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

這將導致:

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

例子:http://jsfiddle.net/3s1c55w2/

它是如何工作的:

  1. $("a").text();將只檢索元素的文本,所以在你的它將返回Hello Bob
  2. 一旦您檢索Hello Bob,只需使用.text(str)再次設置a標記文本值,其中str是沒有html標記的值。
+0

似乎人們無法理解這個問題,請參閱編輯變量使用 – 2014-09-10 18:41:25

+0

您的回答不起作用。 – 2014-09-10 18:43:42

+0

我提供的jsFiddle清楚地表明它確實如此。我會檢查你的jQuery實現是否安裝正確。 – Axel 2014-09-10 18:45:27

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, "")); 

否則,使用或者刪除或者斷開其他的答案將是合適的。