我在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();
}
答案 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(...)
第三种选择效率最低。