0

このJavascriptコードは、RubyonRailsの.erbファイル内にあります。

<script type="text/javascript">

...

function show_all_categories_terms_contents() {
  $('#categories_terms_root2').show();
  $('#categories_terms_root3').show();

...

</script>

#categories_terms_rootそれぞれに新しい行を追加するのではなく、ループを実行して必要な数だけ作成する必要があります。

私はさまざまなことを試しましたが、どれもうまくいきませんでした:

function show_all_categories_terms_contents() {
  for(int i=2; i<=6; i++)
    $(String.concat("#categories_terms_root", i)).show();

}
4

2 に答える 2

1

jsコードにいくつかのエラーがあるため、機能しません。次のコードが機能するはずです。

function show_all_categories_terms_contents() {
  for(var i=2; i<=6; i++){
    $("#categories_terms_root" + i).show();
  }
}
于 2013-02-24T22:55:37.037 に答える
0

問題を解決する他のいくつかの方法:

  • IDを持つdivなどのコンテナ要素を持っていると、次のcategories_terms_containerことができます$('#categories_terms_container').children().each(function() { $(this).show(); });

  • クラスを使用します。たとえば<div id="categories_terms_root2" class="categories_terms_root">、クラスセレクターを使用します。$('.categories_terms_root').each(...)

  • 「属性は次で始まる」セレクターを使用します。例:$('[id^=categories_terms]').each(...)

3番目のオプションは最も効率が悪いです。

于 2013-02-24T23:08:38.070 に答える