Как получить пользовательский атрибут с помощью Jquery

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

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

this.attr('data-ref');

любые идеи,

дивное

5 ответов


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

кроме того, вам может быть проще работать с объектом jQuery:

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

JS Fiddle demo.

проблема, похоже, в том, что вы не использовали объект jQuery:

this.attr('data-ref');

не работает

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

this.getAttribute('data-ref');

или:

this.dataset.ref;

или:

this.dataset['ref'];

$("селектор").attr ("data-ref"); должно определенно работать.

возможно, вы можете опубликовать свой html-код


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

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

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

в магазине:

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

для:

var data = $('#divid').data('data-ref');

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

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


ваша проблема реализации может быть с использованием этого. возможно, это должно быть $(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>