jQuery:将属性值转换为嵌套数组(字符串转换为数字)

时间:2016-04-20 01:47:09

标签: javascript jquery arrays

使用jQuery,我想获取每个属性值,将其插入到数组中,然后将每个数组插入到数组中。

从这个HTML:

   <ul>
        <li data-bbox="-121,20,-36,30">Item 1</li>
        <li data-bbox="-122,30,-46,40">Item 2</li>
        <li data-bbox="-123,40,-56,50">Item 3</li>
    </ul>

我正在尝试创建这种类型的嵌套数组:

var bboxArray = [
    [-121,20,-36,30],
    [-122,30,-46,40],
    [-123,40,-56,50]
];

...并将字符串转换为数字。

我假设我需要做这样的事情:

var bboxArray = [];
$('li[data-bbox]').each(function() {
  bboxArray.push($(this).attr('data-bbox').split(','));
});

2 个答案:

答案 0 :(得分:2)

Working Example

虽然您的代码确实有效,但它会返回字符串而不是您所需输出中的数字,这样做会:

我只是在.map(Number)

的末尾添加了push
$('li[data-bbox]').each(function() {
  bboxArray.push($(this).attr('data-bbox').split(',').map(Number));
});

答案 1 :(得分:0)

您可以使用.map()方法,如下所示:

var bboxArray = $('ul > li').map(function() {
    return [ $(this).data('bbox').split(',') ];
}).get();

var bboxArray = $('ul > li').map(function() {
    return [ $(this).data('bbox').split(',') ];
}).get();
console.log( bboxArray );
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
   <ul>
        <li data-bbox="-121,20,-36,30">Item 1</li>
        <li data-bbox="-122,30,-46,40">Item 2</li>
        <li data-bbox="-123,40,-56,50">Item 3</li>
    </ul>