Как получить пользовательский атрибут с Jquery - PullRequest
7 голосов
/ 08 марта 2011

У нас есть собственный атрибут для флажков в этом случае, который называется data-ref.

Как получить значение.Это не сработало.

this.attr('data-ref');

Любые идеи,

Чудесные

Ответы [ 5 ]

18 голосов
/ 08 марта 2011

Вы знаете, что у вас есть несоответствие между вашим пользовательским атрибутом 'date-ref' в вашем тексте и 'data-ref' в вашем jQuery?

Также вам может оказаться проще работать с объектом jQuery:

$(this).attr('data-ref');

Демонстрация JS Fiddle .

Проблема, действительно, заключается в том, что вы не использовали объект jQuery:

this.attr('data-ref');

Не могу работать

С другой стороны, для получения атрибутов data-* с использованием DOM у вас есть опции:

this.getAttribute('data-ref');

Или:

this.dataset.ref;

Или:

this.dataset['ref'];
2 голосов
/ 08 марта 2011

$ ( "селектор") атр ( "данные ссылки.");должно определенно работать.

Может быть, вы можете разместить свой HTML-код

1 голос
/ 08 марта 2011

Ранее указано, что attr () - как получить пользовательские атрибуты. Однако также обратите внимание, что если вы используете атрибуты data- * в HTML5, теперь вы также можете использовать .data () в jQuery для доступа к этим данным:

http://api.jquery.com/data/

1 голос
/ 08 марта 2011

возможно вы должны использовать:

$(this).attr('data-ref');

но это не очень красиво!используйте jQuery.data () для хранения данных на узлах DOM.

для хранения:

$('#divid').data('data-ref', 'i am data');

для получения:

var data = $('#divid').data('data-ref');
0 голосов
/ 08 марта 2011

Ваша проблема реализации может быть связана с использованием вами этого.возможно, это должно быть $ (this), или вы можете не связываться правильно.Я не могу найти никаких проблем с этим .. см. http://jsfiddle.net/nvkVy/2/

<a href='api.fatherstorm.com' data-ref='test' data:ref='test' data_ref='test' class='testable'>test me</a>

<script>
$(document).ready(function(){

    $('.testable').click(function(){

       alert('data-ref='+$(this).attr('data-ref'));
        alert('data:ref='+$(this).attr('data:ref'));
        alert('data_ref='+$(this).attr('data_ref'));
        return(false);
    }); 
});
</script>
...