2015-11-06 72 views
0

我有一大堆的陣列,例如:如何使用jQuery選定的文本作爲變量?

var myArrayName = [1, 2, 3, 4, 5, 6]; 
var myArrayName2 = [1, 2, 3, 4, 5, 6]; 
var myArrayName3 = [1, 2, 3, 4, 5, 6]; 

在我的DOM我有data-name="myArrayName" data-push="7"元素,data-name="myArrayName2" data-push="2"

我想選擇所有data-name的元素,然後推data-push值,將其,所以:

$("*[data-name]").each(function(){ 
    var arName = $(this).data("name"); 
    var toPush = $(this).data("push"); 

    // how do I make the stuff below work? 
    // arName.push(toPush); 
}) 

回答

1

這將選擇所有帶有屬性的元素data-name

var arrDataAttr = new Array(); 
var arrDataPush = new Array(); 
$(document).find("[data-attr]").each(function() 
{ 
    arrDataAttr.push($(this).attr("data-attr")); 
    arrDataPush.push($(this).attr("data-push")); 

}); 
1

你需要使用一個對象(字典,地圖,無論你怎麼稱呼它):

var arrays = { 
    'myArrayName': [], 
    'myArrayName2':[], 
    'myArrayName3':[] 
} 
$("*[data-name]").each(function(){ 
    var arName = $(this).data("name"); 
    var toPush = $(this).data("push"); 
    arrays[arName].push(toPush); 
}) 
1

一個簡單的方法來做到這一點可能是換一個對象下的所有陣列它們的命名應該:

var arrays = { 
    myArrayName: [1, 2, 3, 4, 5, 6]; 
    myArrayName2: [1, 2, 3, 4, 5, 6]; 
    myArrayName3: [1, 2, 3, 4, 5, 6]; 
}; 

然後,您可以通過它們的名稱來訪問陣列,像這樣:

// to access the first array: 
arrays["myArrayName"]; 

最終的代碼如下所示:

$("[data-name]").each(function(){ 
    var $item = $(this); 
    var arName = $item.data("name"); 
    var toPush = $item.data("push"); 

    arrays[arName].push(toPush); 
}); 

注:

  • 請注意,我緩存$(本)變量,如果你想知道爲什麼,檢查this

  • 如果您想了解更多關於使用JavaScript訪問對象的屬性,檢查this

1

嘗試調整數組變量的名稱,屬性data-*使用$.each()稱爲陣列上,具有data-name選擇元件與環

var myArrayName0 = [1, 2, 3, 4, 5, 6]; 
 
var myArrayName1 = [1, 2, 3, 4, 5, 6]; 
 
var myArrayName2 = [1, 2, 3, 4, 5, 6]; 
 

 
$.each([myArrayName0, myArrayName1, myArrayName2], function(index, arr) { 
 
    arr.push($("[data-name$=" + index + "]").data("push")) 
 
}); 
 

 
console.log(myArrayName0, myArrayName1, myArrayName2);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"> 
 
</script> 
 
<div data-name="myArrayName0" data-push="7"></div> 
 
<div data-name="myArrayName1" data-push="2"></div> 
 
<div data-name="myArrayName2" data-push="1"></div>

的電流 index結束