2011-07-25 1 views
9

この質問は非常に簡単ですが、私はこれを理解できません。JQuery - DOMNodeInsertedで要素を使用する

DOMNodeInsertedイベントを使用して、新しい要素が挿入されたときを検出しています。

現在の要素の使用方法はわかりません。たとえば、親のIDを取得するなどです。

document.addEventListener("DOMNodeInserted", function(event){ 
    var element = event.target; 

    if (element.tagName == 'DIV') { 
    if (element.id == 'ndiv_3-1VTSTHR') { 
    alert($('#ndiv_3-1VTSTHR').parent().get(0).tagName); 
    } 
    } 
}); 

これは動作しますが、それはndiv_3-1VTSTHR要素に私の親を与えます:

今、私はこのような機能を持っています。 JQueryを使用して、どの要素の親を知りたいですか。

私は

alert($(this).parent().get(0).tagName); 

でなく、運を試してみました。

+0

特定のIDをフィルタリングするために 'if'を削除するとどうなりますか?そして '$(element)'を使います。 – pimvdb

+0

@pimvdb:いいえ、alert($(element).tagName)で試してみました。私に未定義を与えている。 – CristiC

答えて

10

おそらく、element.targetの周りのjQueryオブジェクトを初期化する必要があります。試してみてください:

document.addEventListener("DOMNodeInserted", function(event) { 
    alert($(event.target).parent()[0].tagName); 
}); 
+0

「要素」または「event.target」のいずれかと思います。 – pimvdb

+0

ありがとう、これは動作します。しかし、もし私がvar el = $(event.target).parent()[0]; alert($(el).tagName)でさらに使用できますか? – CristiC

+0

@Parkyprg、 'tagName'は、jQueryオブジェクトではなくDOM要素によって公開されるプロパティです。 'el.tagName'または' $(el)[0] .tagName'のいずれかを書く必要があります。 'el'にjQueryオブジェクト自体を格納するのが最善でしょう:' var el = $(event.target).parent(); '。そこから 'el [0] .tagName'を実行して要素のタグ名を取得することができます。 –

関連する問題