2

私のコードを参照してください:

var ths = $("#my_table table th");
if (ths.length > 1) {
    var $th = ths[1]; // tried here plain 'var th' - still got error 
    th.find('#map_column_element_id'); // error here!
}

JQueryオブジェクトの配列を取得します。次に、2番目の要素をJQueryオブジェクトとして管理しようとします。私が発行するとき

th.find(...)

TypeErrorが発生します:th.findは関数ではありません。私は何が間違っているのですか?

4

1 に答える 1

6

find()メソッドを持たないネイティブ JS DOM 要素を取得しています。を使用するeq()か、要素を で再ラップし$(ths[1])ます。

私はeq()次のように使用します:

var ths = $("#my_table table th");
if (ths.length > 1) {
    var $th = ths.eq(1);
    $th.find('#map_column_element_id');
}

また、コメントで Andrew に同意します。ID は一意であり、その必要はありません。find()単に実行$('#map_column_element_id')するだけで十分です。

于 2012-12-21T16:08:32.653 に答える