2013-02-18 20 views
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> 

我希望得到一個標籤的屬性值數據DK-下拉值。我的代碼是始終顯示空

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

數據( 「DK-下拉值」)可能會工作得更好,並且至少按照預期的數據屬性工作 – mplungjan 2013-02-18 07:02:50

回答

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

你的選擇是收集所有元素你的列表,但.data()方法只作用於第一個matc hed元素。該元素的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); 
+0

爲什麼倒票? – 2013-02-18 08:43:47

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); 
}); 
0

不要使用ATTR,有一個data功能爲了這。選擇一個元素的數據的正確的方法是:

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

要設置數據使用:

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

嘗試此,

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