2016-11-27 27 views
0

有幾個按鈕(他們動態創建)如何從按鈕屬性中獲取數據?

<button class="common" id="1.1" status="sale" oncontextmenu="rightButton('1.1'); return false" onclick="addOptions('1.1')" number="1">1</button> 

我需要的屬性(類,ID,狀態,數量),並把它們插入到對象數組。然後輸入到數據庫。這段代碼的

function saveScheme() 
{ 
    var table = document.getElementById('schemeTable'); 
    var elements = table.getElementsByTagName('button'); 
    var arrayIdButtons = {}; 
    for(var i = 0; i<elements.length; i++) 
    { 
    arrayIdButtons[i] = {}; 
    for(var j = 0; j<4; j++) 
    { 
     arrayIdButtons[i]["coord"] = elements.item([i]).id; 
     arrayIdButtons[i]["status"] = elements.item([i]).status; 
     arrayIdButtons[i]["type"] = elements.item([i]).class; 
     arrayIdButtons[i]["number"] = elements.item([i]).number; 
    } 
    } 
    console.log(arrayIdButtons); 
    var data='data=' + JSON.stringify(arrayIdButtons,"", 2); 
    $.ajax({ 
      type: 'POST', 
      url: "handler.php", 
      data: data, 
      cache: false, 
      data: data, 
      success: function(data) { 
       alert(data) 
      } 
     }); 
} 

結果(console.log(arrayIdButtons);):

enter image description here

+0

在ID中使用'.'不是一個好主意。當你編寫CSS選擇器時,'.'用於表示類名,所以你需要轉義它。 – Barmar

+0

什麼是for(var j'循環用於?你沒有使用'j'作爲任何東西,而'elements.item([i])'應該是'elements [i]'。 – Barmar

回答

1

由於您已經在使用jQuery,因此您可以使用.attr()訪問元素的屬性。例如:

$('.common').attr('number'); 

或者,沒有jQuery的,

elements[i].getAttribute('number'); 
1

使用HTML5 API data

<button class="common" id="1.1" data-status="sale" oncontextmenu="rightButton('1.1'); .....</button> 

所以,

elements.item([i]).data('status'); //if jquery enabled 
+0

這隻適用於' data-'屬性,它不適用於非標準的'number'屬性。 –

+0

@StephenThomas重點不在於首先使用非標準屬性。 – Barmar

0

你可以試試這個網站。然後,

<button class="common" data-id="1.1" data-status="sale" data-number="1">1</button> 

如果沒有裝載DOM,那麼你可以通過

$(document).ready(function(){ 
$(".common").on("click",function(){ 
    var data_id = $(this).attr('data-id'); 
    var data_status = $(this).attr('data-status'); 
    var data_number = $(this).attr('data-number'); 
    console.log(data_id); 
    console.log(data_id); 
    console.log(data_id); 
}); 
}); 

得到這一點,如果DOM已經加載,你可以通過

$(document).on("click",".common",function(){ 
    var data_id = $(this).attr('data-id'); 
    var data_status = $(this).attr('data-status'); 
    var data_number = $(this).attr('data-number'); 
    console.log(data_id); 
    console.log(data_id); 
    console.log(data_id); 
}); 

讓他們那麼你可以把這是一個數組。注意 - 這會給你僅點擊按鈕的屬性