2016-04-22 32 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() ]