2016-10-08 51 views
1

我有以下標記。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> 

我想在firstlast課間選擇my_id的值,並將其存儲在一個對象。在這種情況下它將是2,3,4,5。

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

我該如何做到這一點?

謝謝!

回答

1

my_idis not a valid HTML attribute。您應該使用data-*屬性來存儲自定義值。

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


編輯感謝評論

.andSelf()
此功能已被棄用,現在是.addBack()一個別名,它應該與jQuery 1.8和更高版本使用。

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

 
console.log(number_store);
<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>

number_store將持有的陣列。


其他參考資料:

+0

謝謝你的詳盡的解釋。如果我想保存'data-id' 2和5呢? (來自「.first」和「.last」的數據ID) –

+1

謝謝你的回覆。它看起來像'.andSelf()'被棄用,「現在是'.addBack()'的別名,應該與jQuery 1.8和更高版本一起使用。」謝謝。得到它的工作。 –

+1

@steveKim感謝您的評論。我忽視了它已被棄用。更新了答案 –

1

您可以使用.each()並將該屬性值添加到ex的數組中。

var number_store = []; 
$('.first').nextUntil('last').each(function(){ 
    number_store.push($(this).attr('my_id')); 
}); 
相關問題