Итак, у меня есть несколько полей, как это:

[1] [2] [3] with attributes: name=item1,item2,item3 and class = item

Я хочу получить все три поля в массиве:

Так:

array = [1,2,3];

Есть ли способ сделать это, используя уникальный атрибут класса: «элемент»?

1
HappyCoder 14 Дек 2015 в 16:14

3 ответа

Лучший ответ

Вы можете использовать метод Array.map() для возврата массива из атрибута:

var items = $('.item').attr('name').split(','), // convert to array
  arr = [].map.call(items, function(value) { // use 
    return +value.match(/\d/)[0]; // return the number value from the array "items"
  });

$('pre').html(JSON.stringify(arr));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p name='item1,item2,item3' class='item'>item</p>
<pre></pre>
2
Jai 14 Дек 2015 в 13:29

Возьмите предметы и переберите их. Добавление каждого в ваш список.

var items = [];
$('.item').each(function(index, value){
  //where value is an input
  items.push(value);
});
1
kemicofa ghost 14 Дек 2015 в 13:22

Попробуйте это $(".items").toArray(), чтобы получить тот же результат, возможно, тот, который работает.

1
Shailesh Katarmal 14 Дек 2015 в 13:20