A-AA+then

เกี่ยวกับการลบแถวโดยใช้ javascript

1,351
ตอนนี้ผมสร้างตารางโดยใช้ js แต่ให้สามารถเลือกที่จะแทรกแถวได้ดังนี้
var row = tbproduct.insertRow(value);//value = แถวที่ต้องการแทรก

อันนี้สร้างปุ่มลบ

var cell = row.insertCell(0);
     cell.appendChild(tdlink('product'));// product = id ของตาราง

function tdlink(table){
    var tb = $E(table);
    var cell = document.createElement("td");
    a = document.createElement('a');
    a.className = 'delete';
    a.href = 'javascript:void(0)'; 
    a.onclick=function(){
                 deleteTd(this,tb);
            };
    cell.appendChild(a);
    return cell;
}
function deleteTd(r,table){
            var i=r.parentNode.parentNode.rowIndex;
            table.deleteRow(i);
   }
ไม่สามารถใช้งานได้ครับ

5 ความคิดเห็น

คำถามไม่ได้ระบุว่าไม่สมารถทำอะไรได้.....เป็นสมาชิกมาตั้งนาน ถามคำถามไม่ถูกมันน่ามะ :34:

ที่สำคัญ เรื่องเกี่ยวกับตารางก็มีบทความบนเว็บ

ประเด็นที่เจอกันเสมอสำหรับปัญหาเกี่ยวกับตารางคือ ไม่มี tbody ครับ ทำให้ไม่สามารถใช้งานคำสั่งได้

table.tBodies(0).appendChild(tr);
1

แหะๆๆ ขอโทษด้วยครับ ใจร้อนไปหน่อย

ปัญหาคือ ไม่สามารถลบแถวได้ครับ

โครงสร้างตารางคือ

<table id="tbproduct">
   <tbody id=tbody_product></tbody>
</table>

var tbproduct = document.getElementById("tbproduct");
var row = tbproduct.insertRow(value);
var cell = row.insertCell(0);
    cell.appendChild(tdlink('tbproduct'));

function tdlink(table){
    var tb = $E(table);
    var cell = document.createElement("td");
    a = document.createElement('a');
    a.className = 'delete';
    a.href = 'javascript:void(0)'; 
    a.onclick=function(){
                 deleteTd(this,tb);
            };
    cell.appendChild(a);
    return cell;
}
function deleteTd(r,table){
            var i=r.parentNode.parentNode.rowIndex;
            table.deleteRow(i);
}

code ตรงนี้สามารถแทรกแถวได้ครับ คอลัมที่ 0 อันนี้สร้างปุ่มลบ (row.insertCell(0);) พอกดแล้วไม่สามารถลบได้ครับ แต่พอกดแล้วสามารถเรียกฟังชั่น deleteTd ได้ครับ

ปล โค๊ด deleteTd สามารถทำงานได้ถ้าสร้างมาจาก php แบบนี้ครับ

<td><a class="delete" href="javascript:void(0)" onclick="deleteTd(this,'tbproduct')">&nbsp;</a></td>
2

ปัญหาตอนนี้คือ แถวที่สร้างจาก js var i=r.parentNode.parentNode.rowIndex; ไม่คืนค่าแถวมาให้ครับ
แต่ถ้าสร้างจาก php มาก่อน 
var i=r.parentNode.parentNode.rowIndex; คืนท่าแถวมาให้
3

แก้ได้แล้วครับ
4

laugh
5
^