我有这样的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);
答案 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');
答案 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);