0

私はjQueryを初めて使用します。語彙が間違っている場合はお詫びします。正しい方法を学べるように修正してください。

パフォーマンスを最適化するためのベスト プラクティスを使用しようとしています。可能であれば、静的オブジェクトを変数に格納するように言われました。親オブジェクト #mytable を保存してから、そこから子オブジェクトに移動しようとしています。

var count=1;
$('#eachselector').each(function(){

  var MyTable = $('#mytable'+count);
  $(MyTable+' td[condition=true][condition2=true]').attr('do', 'stuff');
  $(MyTable+' table[condition=true][condition2=true]').attr('do', 'stuff');

  count++;
});

これにより、「キャッチされていない例外: 構文エラー、認識されない式: [オブジェクト オブジェクト]」というエラーが表示されます。

each() 内で呼び出されたときに MyTable を文字列として扱っていると思われますが、構文がどのように見えるかわかりません。

ありがとう!

4

2 に答える 2

5

代わりにこれを使用してください:

var MyTable = $('#mytable'+count);
MyTable.find('td[condition=true][condition2=true]').attr('do', 'stuff');
MyTable.find('table[condition=true][condition2=true]').attr('do', 'stuff');

これは、jQuery の.find()関数を使用して の子孫を検索します$('#mytable'+count)。コードが機能しない理由MyTableは、jQuery オブジェクトが文字列ではないためです。

使用することもできます$('selector', MyTable)が、内部的には関数にマップするだけ.find()です。

于 2013-09-29T18:14:13.487 に答える