2016-04-22 78 views
2

我有一个普通类的按钮(buttons)。我怎样才能以相反的顺序将它们的IDs添加到数组中?按相反顺序创建数组

var yourArray = []; 
$('.buttons').each(function() { 
    yourArray.push($(this).prop('id')); 
}); 
+0

'array.unshift()'简单的东西? – evolutionxbox

+0

在循环外部添加'yourArray.reverse();' – Mihai

+0

@Mihai - 这不就是颠倒已经创建的数组吗? 'unshift'至少允许从后到前创建一个阵列(“以相反的顺序”) – evolutionxbox

回答

4

您可以通过添加每个元素使用unshift()数组的开始创建数组:

var yourArray = []; 
$('.buttons').each(function() { 
    yourArray.unshift(this.id); 
}); 

或者你可以在当前为了创建它,然后它reverse()。另外请注意,您可以使用map()最初创建数组:

var yourArray = $('.buttons').map(function() { 
    return this.id; 
}).get().reverse(); 

最后,你可以使用this.id,而不是创建一个jQuery对象只是访问,而无需创建对象的访问已经一个属性。

+1

@Becky POJS数组没有'each()'方法。你应该使用普通的'for'循环或$ .each(yourArray,function(){...});' –

+0

是否可以在现有的'each()'函数内颠倒顺序? $('。buttons')。each(function(){' – Becky

+1

这就是第一个代码示例正在做什么 –

2

你可以做map()reverse()

var yourArray = $('.buttons').map(function() { 
 
    return this.id; // get the id 
 
}) 
 
.get() // get the array 
 
.reverse(); // reverse the array 
 

 
console.log(yourArray);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<button id="a" class="buttons"></button> 
 
<button id="b" class="buttons"></button>

+0

如果我需要在另一个'each(function(){'? – Becky

+0

'yourArray.forEach(function(v){......)中使用新创建的数组, ..................................});',使用'forEach'或'$ .each() ' –

+0

谢谢,我想在现有的'each()'函数中使用它,我尝试了'yourArray.each(function(){...});'似乎没有工作 – Becky