从属性中获取所有值并推入数组

时间:2013-09-11 15:32:07

标签: javascript arrays sorting

我有一个div容器,其属性名为“Location”。在这个位置是一系列由半结肠隔离的国家。我想抓住每个值并将它们作为单个项目推送到数组中,而不是一个带有半冒号的长字符串。

<div class="item-container" location="United States; United Kingdom; France"></div>

有一次,我有这些我想对它们进行排序,但是,上半部分是最重要的。

感谢任何帮助。

3 个答案:

答案 0 :(得分:3)

var element = document.querySelector('.item-container');
var locations = element.getAttribute('location').split('; '); // ["United States", "United Kingdom", "France"]
locations.sort(); // ["France", "United Kingdom", "United States"]

如上所述,您可以将location重命名为data-location,并使用element.dataset.location来访问该字符串(IE 10 +)。

答案 1 :(得分:1)

我建议您使用data-前缀作为自定义属性,即

<强> HTML:

<div class="item-container" data-location="United States; United Kingdom; France"></div>

HTML5 Data Attribute

<强> JS:

var div = document.querySelector('[data-location]');
var arr = div.getAttribute('data-location').split(';').sort();
console.log(arr); // [" France", " United Kingdom", "United States"] 

DEMO.

答案 2 :(得分:1)

使用jQuery:http://jsfiddle.net/3ma9m/

var str = $('.item-container').attr('location');
var n = str.split(";");

$.each(n, function (key, value) {
    $('.item-container').append(key + ": " + value + "<br />");
});