2016-12-13 41 views
0

我創建了一個表格。爲表格單元賦予唯一標識

我有文本輸入,我鍵入一些文本。它指的是某些具有特殊價值的元素。

當我點擊一個按鈕productname被添加到表(使用insertCell())。

我想給每個新的表格元素一個唯一的ID。

function add1() { 
    var row, cell; 
    var productname = document.getElementById("produkt1").value; // text input 
    var table = document.getElementById("pos1"); // button near text input 

    if(productname === "Egg") { 
    p = ["Egg", "", 20, 10, 11, 101]; 
    } 
    if(productname === "Milk") { 
    p = ["Milk", "", 30, 5, 12, 75]; 
    } 

    row = table.insertRow(2); 
    var c_id = 0; 

    for (var i = 0; i < p.length ; i++) { 
    cell = row.insertCell(i); 
    cell.innerHTML = p[i]; 

    for (var j = 0; j < 1 ; j++) { 
     cell.id = 'tdp1' + k_id; 
     c_id++; 
    } 
    } // It only works for one element, and the others have the same id as elements from row1 
} 
+0

聲明變量'p'和'k_id'在哪裏?你在哪裏增加'k_id'?而你沒有使用'c_id'。而這個循環'for(var j = 0; j <1; j ++){'沒有意義,因爲你總是迭代一次。 – Thomas

回答

0

我找到了解決辦法:

function add1() { 
var row, cell; 
var productname = document.getElementById("produkt1").value; 
var table = document.getElementById("pos1"); 
if(productname === "Egg") { 
p = ["Egg", "", 20, 10, 11, 101]; 
} 
if(productname === "Milk") { 
p = ["Milk", "", 30, 5, 12, 75]; 
} 
var cells = document.getElementsByClassName("pos"); 
row = table.insertRow(2); 
for(var i = 0; i < p.length ; i++){ 
cell = row.insertCell(i); 
cell.innerHTML = p[i]; 
cell.className = "pos"; 
for(var j = 0; j < cells.length ; j++){ 
cell.id = 'tdp1' + j; 
} 
} 

我給創建單元的類名。它正在工作,但感謝您的幫助。 :)

0

a。似乎有一個類型的行cell.id = 'tdp1' + k_id;它應該是c_id而不是k_id

b。你不需要第二個for循環,只需要刪除它。 下面的代碼給了我一個新行的id爲每個單元(tdp10到tdp15)

function add1() { 
    var row, cell; 
    var productname = document.getElementById("produkt1").value; // text input 
    var table = document.getElementById("pos1"); // button near text input 
    if(productname === "Egg") { 
     p = ["Egg", "", 20, 10, 11, 101]; 
    } 
    if(productname === "Milk") { 
     p = ["Milk", "", 30, 5, 12, 75]; 
    } 
    row = table.insertRow(2); 
    var c_id = 0; 
    for(var i = 0; i < p.length ; i++){ 
     cell = row.insertCell(i); 
     cell.innerHTML = p[i]; 
     cell.id = 'tdp1' + c_id; 
     c_id++; 
    } 
}