2012-02-22 77 views
0

我有一個div和這裏面的內部跨度的所有屬性值,還有很多跨度如下:得到一個div

<div id="mydiv"> 
    <span id="first_id" itemindex="0">first span</span> 
    <span id="second_id" itemindex="1">second span</span> 
    <span id="third_id" itemindex="2">third span</span> 
    ... 
</div> 

我要定義的函數「getItemIndexValues()」中的JQuery誰在「myDiv」中獲得了所有的價值。有可能的?

+0

從您的示例中可以看出div的值是什麼? – gideon 2012-02-22 03:51:12

回答

1

你想使用data- prefixed attributes

HTML:

<div id="mydiv"> 
    <span id="first_id" data-itemindex="0">first span</span> 
    <span id="second_id" data-itemindex="1">second span</span> 
    <span id="third_id" data-itemindex="2">third span</span> 
</div> 

的JavaScript:

var arr = $('span', '#mydiv').map(function() { 
    return $(this).data('itemindex'); 
}).get(); 

這裏,arr[ '0', '1', '2' ]

現場演示:http://jsfiddle.net/fQJAk/

順便說一句,如果你prefe r一組數字,請執行以下操作:

return +$(this).data('itemindex'); 
-------^ 
+0

有趣。 「+」是如何工作的?這是記錄在某處嗎? – gideon 2012-02-22 04:11:06

+1

@gideon它是一元加操作符。它執行轉換爲數字。在這裏採訪:http://es5.github.com/#x11.4.6 – 2012-02-22 13:59:45

+0

不錯!謝謝@Šime – gideon 2012-02-22 14:11:20

0

我沒有驗證,但我認爲這應該工作:

$("#mydiv>span").each(function(a,b){ 
    alert($(b).attr('itemindex')); 
}); 

通過使用這裏的孩子選擇:http://api.jquery.com/child-selector/