2016-11-27 57 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); 
}); 

让他们那么你可以把这是一个数组。注意 - 这会给你仅点击按钮的属性