0

forループを含むクラスを選択するためのjqueryの式について簡単な質問があります。基本的に、次の 2 つの手順があります。 1. ループを使用していくつかの html テーブルを生成します。2. jQuery を使用してそれらを再表示します。

以下は、1. html テーブルを生成するための単純化されたコードです (ループ インデックスを追加して、各ループで作成されたテーブルを分離します)。私のセレクターは次のように記述されていますmethod_options_1'+i+'。ここで、i は for ループ インデックスです。

for (var i = 2; i <= 5; i++) {
  <tr class="method_options_1'+i+'" style="display: none;"><th><label for="id_CAM_1">Chemical application Method (CAM):</label></th>
      <td><select name="CAM_1_'+i+'" id="id_1_'+i+'">
        <option value="2">2-Interception based on crop canopy</option>
        <option value="9">9-Linear foliar based on crop canop</option></select>
      </td></tr>

  $('.method_options_1'+i).closest('tr').show();  
}

ただし、このセレクターは機能しません。つまり、非表示の要素を表示できませんでした。一方、HTML と jquery の両方からインデックス i を削除すると、セレクターが機能します。i インデックスを保持する必要があるため、誰かが提案をしてもらえますか (closest('tr') を削除しようとしましたが、機能しません)。

4

3 に答える 3

1

'.method_options_1'+iはすでに であるため、最初にステップtrを削除してみてください。closest('tr')

$('.method_options_1'+i).show();

http://jsfiddle.net/WJDCm/を参照してください

于 2012-06-29T18:14:08.177 に答える
0

上記のコードをどのように実行するのか本当に疑問に思います...しかし、これを行うとうまくいきます

HTML:

 ​&lt;table id='myTable'>
 </table>​​​​​​​​

JavaScript:

$(function(){

  for (var i = 2; i <= 5; i++) {
     $('#myTable').append('<tr class="method_options_1'+i+'" style="display: none;"><th><label for="id_CAM_1">Chemical application Method (CAM):</label></th><td><select name="CAM_1_'+i+'" id="id_1_'+i+'">        <option value="2">2-Interception based on crop canopy</option>        <option value="9">9-Linear foliar based on crop canop</option></select>      </td></tr>');


     $('.method_options_1'+i).closest('tr').toggle('slow');   
  }


})

解決

于 2012-06-29T18:48:15.250 に答える
0

これは、Javascript に関する限り、name単なる文字列であるためです: method_options_1'+i'. その文字列内のコードは評価されません。正しく実行したい場合は、次のようにします。

HTML:

<tr class="method_options">etc</tr>

Javascript:

$('.method_options:eq('+i+')').show();

編集:

たぶん私は誤解しました。これを Javascriptforループ内で生成しているためi、コード空間で有効な変数です。その場合は、closest()jQuery に DOM を移動して最初trに見つかったものを選択するように指示するため、単に を取り出す必要があります。この場合、それは何もないように見えます。選択している の親であるtrではなく、選択した で作業したい場合。tr

于 2012-06-29T18:14:13.937 に答える