2012-04-25 76 views
1

完整的新手使用jQuery,我有一些問題。jquery parent.html不是函數

我有一個表中的一些單元格中有一個(每個單元格從不超過一個選擇)。

在以下代碼中,select是傳遞給該函數的元素。我試圖讓父母,以便我可以刪除和替換一些HTML。

function submit_pick(select) { 
    var parent = select.parent().get(0);  
    select.remove(); 
    jQuery("#testdiv").html(parent.tagName); 
    parent.html(parent.tagName); 
} 

select.remove();按預期工作

jQuery("#testdiv").html(parent.tagName);也工作正常生產TD

parent.html(parent.tagName);不起作用。 Firefox的Web控制檯給出錯誤parent.html不是一個函數。

+1

只是一個建議:你可能想避免使用也是HTML標籤名和JQuery函數名(變量,父類)的變量名......如果沒有其他的東西,它會使你的代碼有點混亂。 :| – McGarnagle 2012-04-25 03:49:28

+0

謝謝,我會記住命名約定以便於閱讀。 – 2012-04-25 04:03:04

回答

2

.get(0)返回本地DOMElement而不是jQuery對象了,所以你需要將parent包裝在$()之內(也就是爲什麼html()被抱怨爲不是函數,因爲html()屬於jQuery obj ECT,不DOMElement):

jQuery(parent).html(parent.tagName); 
0

parent是不是一個jQuery對象了,你將不得不使用:

$(parent).html(parent.tagName); 
0

get返回DOM元素不是一個jQuery對象。嘗試

var parent = select.parent().eq(0);  

eq爲您提供了jQuery對象的索引,這是你想要的東西在

1

嘗試:


jQuery(parent).html(parent.tagName); 
0

這是因爲你做.get(0)它返回一個DOM元素,而不是一個jQuery對象。

http://api.jquery.com/get/

你應該使用jQuery(parent),以便能夠再次使用.html()方法。