2011-03-23 25 views
2

我不知道這是什麼錯誤消息意味着:clone.html()爲null

clone.html() is null

控制檯是指符合以下代碼:

clone.filter('p').html(clone.html().replace('a','b').replace('x','y'));

這是我的代碼片段:


var clone = $('div p, div ul').clone(); 
clone.filter('p').html(clone.html().replace('a','b').replace('x','y'));

我錯過了什麼? 我應該檢查clone.html()是否爲null?或者這是一個骯髒的解決方案 任何想法或提示高度讚賞。

+0

向我們展示'clone'被分配了哪些數據。 – ThiefMaster 2011-03-23 14:17:47

+0

你究竟在做什麼? – Lazarus 2011-03-23 14:18:54

+0

$('div p')'選擇'p'標籤,所以'filter('p')'不需要。 – 2011-03-23 14:20:36

回答

1

clone.html()將是無效的,如果你的選擇沒有發現任何東西。這是因爲,當jQuery什麼都找不到時,它會返回一個空數組。另外,在一個集合上調用html(),只會得到第一個項目的html值。你可能應該循環做這件事。

var clone = $('div p, div ul').clone(); 
clone.each(function(){ 
    var $this = $(this); 
    if($this.html() != ''){ 
     $this.html($this.html().replace('a','b').replace('x','y')); 
    } 
}); 
+0

就是這樣。謝謝。我不得不刪除'$'符號,但它的工作原理。我會盡快將其標記爲已回答。 – flighter 2011-03-23 14:33:58

+0

@flighter:刪除'$'符號?你在說什麼? – 2011-03-23 14:36:27

+0

var $ this = $(this); 我不得不通過另一個變量名來替換$ this。 – flighter 2011-03-23 14:40:48

3

clone.html() is null意味着你選擇$('div p')未發現任何