2016-04-25 6 views
0

ダイナミックに作成されたHTML表要素を別の動的に作成された表の行にターゲティングし、最後のサブテーブルの行。この動的に作成された要素にクリックイベントをアタッチする必要はありません。これは私がどこからでも見つけることができる答えです。私は最後の行(クラス.subTableLastRow)の前に別のテーブル行を追加する特定のテーブル行(this.closest("tr")、これは.buttonHereセル内の特定のサブテーブル(.subTable) 。ダイナミックに作成されたHTML要素を関数で追加する(追加イベントのために - クリックしないでください)jQuery

私が持っているのであれば:

$("#mainTable").on("click",".buttonHere", function() { 
    $(this.closest("tr") > ".subTable" > ".subTableLastRow").before("<tr><td>another row</td><td>with two cells</td></tr>"); 

は、これは厄介コードであり、それは明らかに動作しません、私はちょうど私がやろうとしているかを説明しようとしています。私はこれが理にかなってほしい。ダイナミックに作成された別の親要素の中に動的に作成された子要素をどのように対象にするのかという単純な答えは、明らかに私が紛失しているので、多くの助けになります。

+0

'#mainTable'でクリックハンドラを定義し、' .buttonHere'ではなく '.dynamicChild'を待ち受けてください。このようにして、イベントリスナーはメインテーブルに「座って」おり、その子からすべてのバブリングされたイベントを受け取ります。 – LeZuse

答えて

0

あなたのjQueryセレクタが間違ってフォーマットされていると思います。さらに

$(".subTable .subTableLastRow", $(this).closest('tr')).before("<tr><td>another row</td><td>with two cells</td></tr>"); 

あなたは$(this)すなわち、jQueryのセレクタでそれをラップする必要がありthisにjQueryのメソッドにアクセスしようとしています。これによりjQueryオブジェクトになり、jQueryメソッドを利用できます。

+0

回答ありがとうございますが、これはうまくいきません。あなたはその問題が何であるか知っていますか? – Miranda

+0

あなたはhtmlの例を挙げることができますか? – shamsup

+0

ちょうど私が必要なヒント!これはうまくいきました。私は.subTableLastRowをクラスではなくidとして持っていました。一定!どうもありがとうございました! – Miranda

関連する問題