从标签中获取价值

时间:2013-02-18 06:59:40

标签: jquery

我有这样的html结构:

<div class="dk_options">
   <ul class="dk_options_inner">
      <li class="dk_option_current"><a data-dk-dropdown-value="">Select State</a></li>
      <li class=""><a data-dk-dropdown-value="1">AK</a></li>
      <li class=""><a data-dk-dropdown-value="2">AL</a></li>
      <li class=""><a data-dk-dropdown-value="3">AR</a></li>
      <li class=""><a data-dk-dropdown-value="4">AZ</a></li>
      <li class=""><a data-dk-dropdown-value="5">CA</a></li>
      <li class=""><a data-dk-dropdown-value="6">CO</a></li>
   </ul>
</div>

我想获取标签属性data-dk-dropdown-value的值。我的代码总是显示为空

var a=jQuery('#dk_container_businessState .dk_options ul li a').attr('data-dk-dropdown-value');
alert(a);

5 个答案:

答案 0 :(得分:2)

试试这个:

jQuery('#dk_container_businessState .dk_options li').each(function(){
  var a = jQuery(this).find('a').attr('data-dk-dropdown-value');
  alert(a);
});

而是使用.data()以便更好地使用:

var a = jQuery(this).find('a').data('dk-dropdown-value');

Read for data-* custom attributes

答案 1 :(得分:1)

请参阅:http://jsfiddle.net/gUYX6/

 jQuery('#dk_container_businessState .dk_options li').each(function(){
  var a = jQuery(this).find('a').data('dk-dropdown-value');
  alert(a);
});

答案 2 :(得分:0)

不要使用attr,这有一个data函数。选择元素数据的正确方法是:

var val = $('.dk_options ul li a').data('dk-dropdown-value');

设置数据使用:

$('.dk_options ul li a').data('dk-dropdown-value', 'value');

答案 3 :(得分:0)

试试这个,

$(document).ready(function() {
    $('.dk_options .dk_options_inner li a').each(function(){
       alert($(this).attr('data-dk-dropdown-value'));
    });
});

答案 4 :(得分:-1)

您的选择器正在收集列表中的所有元素,但.data()方法仅对第一个匹配的元素起作用。该元素的data-dk-dropdown-value属性的值为“”。

如果您想要每个匹配元素的所有值,请尝试以下方法:

var a=[];
jQuery('#dk_container_businessState .dk_options ul li a').each(function () {
  a.push($(this).data('dk-dropdown-value'));
});
alert(a);