2016-12-13 16 views
0

テーブルを作成しました。テーブルセルに一意のIDを付与する

テキストを入力する場所にテキストが入力されています。特別な値を持つ要素を指します。

ボタンをクリックすると、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 ++){'は決して正確に1回反復するので意味がありません。 – 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;のタイプがあると思われます。k_id

bの代わりにc_idとします。何かのために2番目のforループは必要なく、削除するだけです。 次のコードは、各セルのIDを私に新しい行を与える(tdp15にtdp10)

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++; 
    } 
} 
関連する問題