2012-04-25 10 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関数名(select、parent)である変数名の使用を避けたい場合は、コードを少し読めば混乱することはありません。 :| – McGarnagle

+0

ありがとう、わかりやすくするために、命名規則を覚えておきます。 –

答えて

2

.get(0)は、このようにあなたが必要とする、もはやネイティブDOMElementなくjQueryオブジェクトを返します。 parent$()にラップする(html()がjQuery objに属しているため、html()が関数ではないと訴えている理由もある電気ショック療法ではなく、DOMElementは):あなたはDOM要素ではなく、jQueryオブジェクトを返します.get(0)を行っているので、

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

parent jQueryのはもうオブジェクトではありません、あなたが使用する必要があります:

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

getがDOM要素ではないjQueryオブジェクトを返します。あなたが望んでいるインデックス、であなたにjQueryオブジェクトを与える

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

eqてみ

1

試してみてください。


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

です。

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

もう一度.html()メソッドを使用できるようにjQuery(parent)を使用する必要があります。

関連する問題