使用javascript从锚标记获取自定义数据

时间:2013-09-23 13:53:36

标签: javascript jquery html anchor

我正在尝试为javscript函数获取此值

<a href="#" id="like" name="like" data-value="<?php echo $_GET['id'];?> " onclick="like(); return false;">
                <img src="<?php echo $ROOT. "/assets/images/templates/like.png"?>" class="aligncenter" alt="" /></a>

我想获取id为数据值。

我尝试使用jquery选择器,例如var id = $('a[data-value]').attr();,但显然错了。

感谢任何帮助。

4 个答案:

答案 0 :(得分:3)

使用.data()

var id= $('#like').data('value');
  

.data()存储与匹配元素相关联的任意数据

答案 1 :(得分:3)

普通JavaScript有2个变体:getAttribute()dataset

var el = document.getElementById( 'like' );
el.getAttribute( 'data-value' ); 
el.dataset.value;

当您使用jQuery对此进行标记时,您可以使用data()attr()

$( '#like' ).data( 'value' );
$( '#like' ).attr( 'data-value' );

使用data()您只能读取值,但不能更新它! data()指的是一个jQuery数据对象,它只是用HTML元素的data-字段初始化,但不会更新它们!

答案 2 :(得分:2)

jQuery的data()将获取数据属性(但不设置它):

var id = $('#like').data('value');

或普通JS

var id = document.getElementById('like').getAttribute('data-value');

答案 3 :(得分:2)

您需要使用data来检索数据属性:

var id = $('a[data-value]').data('value');

或者,假设a元素有id

var id = $('#like').data('value');

您可以使用attr(),但请注意,这只会获得附加到DOM元素的data个属性,因此不被视为良好做法。使用jQuery添加的数据属性只会出现在数据缓存中,并且可以通过data()获取,因此无法以这种方式检索:

var id = $('#like').attr('data-value');