2016-04-22 33 views
0

我得到了一个数组,它有一定顺序的按钮元素。从数组中获取文本

var arr = [ $('.buttons')[0], $('.buttons')[2], $('.buttons')[1], $('.buttons')[4] ]; 

如何获取每个按钮的文本?以下是我的尝试。

$.each(arr, function (index, value) { 
     var butText = value.text(); 
     //do something... 
}); 

回答

1

您需要使用jQuery对象$(this)来获取按钮文本。

var arr = [$('.buttons')[0], $('.buttons')[2], $('.buttons')[1], $('.buttons')[4]]; 
 

 
$.each(arr, function() { 
 
    var butText = $(this).text(); 
 
    console.log(butText) 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button class="buttons">button 0</button> 
 
<button class="buttons">button 1</button> 
 
<button class="buttons">button 2</button> 
 
<button class="buttons">button 3</button> 
 
<button class="buttons">button 4</button>

3

如果你想找回他们每个人按照指定的顺序,你可以只考虑通过他们循环使用$(this)指在迭代每个元素:

// Iterate through each element 
$.each(arr, function(){ 
     // Get the text (this will refer to each of your elements) 
     var buttonText = $(this).text(); 
     // Do something here 
}); 

完整示例

var arr = [ $('.buttons')[0], $('.buttons')[2], $('.buttons')[1], $('.buttons')[4] ]; 
 
$.each(arr,function(){ 
 
    alert($(this).text()); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<button class='buttons'>A</button> 
 
<button class='buttons'>B</button> 
 
<button class='buttons'>C</button> 
 
<button class='buttons'>D</button> 
 
<button class='buttons'>E</button>

1

如果要提取这些元素的新数组的文本而不$.each()循环,您可以使用使用map()

var arr = [ $('.buttons')[0], $('.buttons')[2], $('.buttons')[1], $('.buttons')[4] ]; 
var texts = arr.map(function(a) {return a.text();}); 

这将返回一个数组相当于

[ $('.buttons')[0].text(), $('.buttons')[2].text(), $('.buttons')[1].text(), $('.buttons')[4].text() ]