将动态ruby生成的id添加到Javascript函数

时间:2016-01-27 13:17:55

标签: javascript ruby-on-rails

我在html.erb文件上有一个脚本。

简而言之,我在剧本中有这一行

   $('img:gt(0)').hide();

我想为img选择器添加动态ID。动态ID是

    <%= hrct.id %>

我试过

                var imgVar = <%= hrct.id %>;
                $('#img_+ imgVar img:gt(0)').hide();

不好。

并且

                var imgVar = <%= hrct.id %>;
                $('#img_+ (imgVar) img:gt(0)').hide();

不好。

帮助?

编辑:我现在尝试了

                  $(function(){
                    var imgVar = <%= hrct.id %>;
                    $('#img_'+ imgVar +' img:gt(0)').hide(); // to hide all but the first image when page loads
                    var img = $('#<%= hrct.id %>').children(), l = img.length;
                    $('#Up, #Down').on('click', function() {
                      var i = img.index( img.filter(':visible').hide() );
                      var t = this.id === 'Up' ? ++i : --i;
                      img.eq( t === l ? 0 : t ).show();
                    });
                  });

我已经包含了完整的功能。如果你看看你得到的开发者工具

enter image description here

而不是

        $('#img_3 img:gt(0)').hide(); 

事实上,

       $('#img_<%= hrct.id %> img:gt(0)').hide();

给出

       $('#img_3 img:gt(0)').hide(); 

但该功能无法正常工作

2 个答案:

答案 0 :(得分:0)

试试这个

var imgVar = <%= "#img_#{hrct.id}" %>;
$(imgVar +' img:gt(0)').hide();

我希望这会有帮助

答案 1 :(得分:0)

更改此行(期待 #img _

var img = $('#<%= hrct.id %>').children()

为:

var img = $('#img_<%= hrct.id %>').children()