2017-05-18 16 views
0
<div class="divColorContainer"> 
    <div class="Blue"></div> 
    <div class="Green"></div> 
    <div class="Blue"></div> 
</div> 

我有一個按鈕,單擊時我想將該屬性推入一個數組,以便稍後比較分數函數。如何將特定類逐個推入數組?

我試過element.push($(.divColorContainer).attr(.Blue)和許多其他的提取。

當按鈕被單擊一次,然後再次單擊時,如何選擇/推動第一個藍色類,檢索下一個藍色類?

如果你徘徊爲什麼。它的記憶遊戲。

回答

0

關於選擇,你可以使用$('.divColorContainer .Blue:eq('+Index+')')使用:eq()nth-child()或使用jQuery .eq()

以確定其索引的元素,我不知道哪個attribute你所談論的。但是你可以用這樣的事情

$(document).ready(function(){ 
 
    var Index = 0; 
 
    $('.selectBlue').on('click',function(){ 
 
    // you can here make whatever you want 
 
    // for example addClass(); 
 
    $('.divColorContainer .Blue:eq('+Index+')').addClass('bg'); 
 
    Index++; 
 
    }); 
 
});
.bg{ 
 
    background : blue; 
 
    color: #fff; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="divColorContainer"> 
 
    <div class="Blue">Blue</div> 
 
    <div class="Green">Green</div> 
 
    <div class="Blue">Blue</div> 
 
</div> 
 
<button type="button" class="selectBlue">Select Blue Class</button>

0

這是我的第一個堆棧溢出的答案,我不完全清楚你想要做什麼,但我希望我可以幫忙。

如果是內存遊戲,你可能想跟蹤哪些元素被點擊,而不僅僅是類名,因爲它們被重用。

無論如何,以點擊元素的類名稱保存到一個數組,你可以或許使用類似:

var classArray = []; 
$('.divColorContainer').children('div').each(function(){ 
    classArray.push($(this).attr('class')); // To save the class names 
}): 

要獲得每個項目的索引點擊,你可以重複類添加到每個元素。

例子:

<div class="color Blue">Blue</div> 

或者只是針對他們:

$('divColorContainer').children('div').on('click', function({})); 

,然後設置一個點擊事件的那類,以獲取單擊元素的索引(0基於指數的父母)。你可以用這樣的東西:

var colorArray = []; 
$('.color').on('click', function(){ 
    colorArray.push($(this).index()); 
});