2016-02-15 4 views
-3

Немного бит я ударил с jquery. Im пытается получить значение data_id и url, но im not gettting. im с использованием jquery 1.9.2.значения данных jquery получения

<a class="blackc accordion-toggle js-accordion-link js-toggle-icon js-no-pjax {'url':'http://example.com/admin/email_templates/edit/62/168c7cbe9c8db561527fa7d20b8ff304','data_id':'62'}" data-toggle="collapse" data-parent="#accordion-admin-email-template" href="#email-content-62"> 

.on('click', 'a.js-accordion-link', function(e) { 
     $this = $(this); 
     var contentDiv = $this.prop('href'); 
     $id = $this.attr('data_id'); 
     $parent_class = $('.js-content-' + $id).parent('div').prop('class'); 
     $this.children('i').toggleClass("icon-minus"); 
     if ($parent_class.indexOf('in') > -1) { 
      $('.js-content-' + $id).block(); 
      $.get($this.attr('url'), function(data) { 
       $('.js-content-' + $id).html(data).unblock(); 
       return false; 
      }); 
     } 
    }) 

следующие методы я использовал для получения data_id и URL-адрес значения. но не работал.

$this.data('data_id'); 
$this.attr('data_id'); 
$this.metadata().data_id; 

Где будет им неправильно ...

+1

Во-первых, правильный синтаксис будет '$ this.data (» ID '); '. Однако, что еще более важно, этот элемент не имеет атрибута 'data-id' ...? –

+0

Вы не можете помещать данные в класс. –

+0

спасибо за предложение Рори Маккроссан. data_id находится внутри класса. Я уже так привык. Теперь его не работает – jayavel

ответ

3

Где будет им неправильно

Вы толкая кусок JavaScript в середине атрибута класса.

Не делайте этого.

Используйте атрибуты данных, как и раньше.

<a class="blackc accordion-toggle js-accordion-link js-toggle-icon js-no-pjax" 
    data-toggle="collapse" 
    data-parent="#accordion-admin-email-template" 
    data-url="http://example.com/admin/email_templates/edit/62/168c7cbe9c8db561527fa7d20b8ff304" 
    data-id="62" 
    href="#email-content-62"> 

Тогда вы можете получить доступ к ним с

$this.data('id'); 
$this.data('url'); 
0

Использование

$this.attr('data-id'); OR $this.data("id") OR $this.data('id'); 

но сначала добавить атрибут data-id

Смежные вопросы