1

我有这样的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);
4

5 回答 5

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');

读取 data-* 自定义属性

于 2013-02-18T07:03:04.070 回答
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);
});
于 2013-02-18T07:04:01.850 回答
0

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

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

设置数据使用:

$('.dk_options ul li a').data('dk-dropdown-value', 'value');
于 2013-02-18T07:06:57.373 回答
0

尝试这个,

$(document).ready(function() {
    $('.dk_options .dk_options_inner li a').each(function(){
       alert($(this).attr('data-dk-dropdown-value'));
    });
});
于 2013-02-18T08:18:37.867 回答
-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);
于 2013-02-18T07:03:36.020 回答