jQuery将属性存储到两个类之间的数组或对象中

时间:2016-10-08 06:05:21

标签: jquery

我有以下标记。

<div class="block" my_id="1">1</div>
<div class="block first" my_id="2">2</div>
<div class="block" my_id="3">3</div>
<div class="block" my_id="4">4</div>
<div class="block last" my_id="5">5</div>
<div class="block" my_id="6">6</div>

我想在my_idfirst类之间选择last的值,并将它们存储在一个对象中。在这种情况下,它将是2,3,4,5。

 var number_store = [];
 $('.first').nextUntil('last').attr('my_id')//??

我将如何实现这一目标?

谢谢!

2 个答案:

答案 0 :(得分:1)

你可以使用.each()并将属性值添加到ex。

的数组中
var number_store = [];
$('.first').nextUntil('last').each(function(){
    number_store.push($(this).attr('my_id'));
});

答案 1 :(得分:1)

my_id is not a valid HTML attribute。您应该使用data-*属性来存储自定义值。

使用jQuery的.andSelf()方法同时包含.first.last元素。

编辑感谢您的评论

  

.andSelf()
这个函数已被弃用,现在是.addBack()的别名,应该与jQuery 1.8及更高版本一起使用。

&#13;
&#13;
var number_store = $('.first').nextUntil('.last').addBack().next().addBack().map(function(){
  return $(this).attr('data-id');
}).get();

console.log(number_store);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="block" data-id="1">1</div>
<div class="block first" data-id="2">2</div>
<div class="block" data-id="3">3</div>
<div class="block" data-id="4">4</div>
<div class="block last" data-id="5">5</div>
<div class="block" data-id="6">6</div>
&#13;
&#13;
&#13;

number_store将保留一个数组。

其他参考资料: