2016-01-27 3 views
0

У меня есть скрипт в файле html.erb.Добавить динамический сгенерированный Ruby идентификатор в функцию Javascript

Чтобы вырезать Короче говоря у меня есть эта строка в скрипте

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

Я хочу, чтобы добавить динамический идентификатор к селектору IMG. Динамический идентификатор

<%= hrct.id %> 

Я попытался

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

Ничего хорошего.

И

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

Ничего хорошего.

Помощь?

EDIT: я сейчас попробовал

    $(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(); 

Но тыс е функция не работает, как это должно

+0

Привет, вы пробовали '$ ('# img _' + imgVar + 'img: gt (0)'). Hide();'? –

+0

Это привело к $ ('# img _' + imgVar + 'img: gt (0)'). Hide(); при просмотре в html. Другими словами, imgVar не преобразуется в переменную, но спасибо за предложение – GhostRider

+0

Что значит «не преобразовано в переменную»? –

ответ

0

Попробуйте

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

Я надеюсь, что это будет helpfulf

+0

Еще не повезло. Проблема заключается в части img: gt (0). Если бы я хотел просто динамический идентификатор, это было бы легко. Его комбинация динамического идентификатора со всеми изображениями, отличными от 0 синтаксиса, является проблемой. Большое спасибо, хотя – GhostRider

0

Изменить эту строку (Ожидая #img_)

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

в :

var img = $('#img_<%= hrct.id %>').children() 
Смежные вопросы