0

我在 Ruby on Rails 的 .erb 文件中有这个 Javascript 代码:

<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(...)

第三种选择效率最低。

于 2013-02-24T23:08:38.070 回答