2014-11-24 128 views
0

我是jQuery選擇器的新手。我如何從屬性中提取值?從屬性選擇器中提取值

考慮:

<div class='container'> 
<div class='entry' data-name='foo'></div> 
<div class='entry' data-name='bar'></div> 
<div class='entry' data-name='baz'></div> 
</div> 

我想提取: ['foo','bar','baz']

+0

你做了什麼? – diEcho 2014-11-24 04:36:25

+0

我原本以爲能夠迭代jQuery('。entry')[0] .attr('data-name')之類的東西,但這似乎不起作用。 jQuery('。entry')[0] .attributes.data-name – Peter 2014-11-24 04:40:34

回答

2

您可以使用.map()創建像

var array = $('.container .entry').map(function() { 
    return $(this).data('name') 
}).get(); 
+0

'.get()。join()' – diEcho 2014-11-24 04:42:16

+0

@diEcho這取決於OP是否需要一個數組或字符串......來自'[' foo','bar','baz']看起來像OP想要一個數組 – 2014-11-24 04:45:32

1

從一組DOM元素的數組試試這個

$(function() { 
 
    var array = []; 
 
    $(".entry").each(function() { 
 
     array.push($(this).data("name")); 
 
    }); 
 
    console.log(array); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class='container'> 
 
<div class='entry' data-name='foo'></div> 
 
<div class='entry' data-name='bar'></div> 
 
<div class='entry' data-name='baz'></div> 
 
</div>

1

嘗試

var name = []; 
$('div.container').children().map(function() { 
    name.push($(this).data('name')); 
}); 

Working DEMO

+1

如果你使用'map'則不需要創建一個'array'變量 – jasonscript 2014-11-24 04:49:25

+0

'name'是一個數組變量 – diEcho 2014-11-24 05:00:35