用单引号插值

时间:2013-02-24 22:35:07

标签: javascript

我在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();

}

2 个答案:

答案 0 :(得分:1)

它不起作用,因为你的js代码中有几个错误。以下代码应该有效:

function show_all_categories_terms_contents() {
  for(var i=2; i<=6; i++){
    $("#categories_terms_root" + i).show();
  }
}

答案 1 :(得分:0)

解决问题的其他一些方法:

  • 有一个容器元素,例如ID为categories_terms_container的div,您可以执行$('#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(...)

第三种选择效率最低。