Jquery适用于所有单元而不是行

时间:2016-10-28 13:58:16

标签: javascript jquery web html-table

我通过使用JS和Jquery添加行和列来创建表。 这是我的代码:

 function AddColumnToDataTable(){
      $('#tableHeader').append("<th> Header </th>").attr("contenteditable", true); 
// Add a new ColumnHeader and set the property "editable"
    }

    function AddRowToDataTable(){
      var count = $('#tableHeader').find("th").length; 
// Get the count of Columns in the table

      var newRow = $('#tableBody').append("<tr></tr>"); 
// Add a new Row

      for(var i = 0; i < count ; i++){
          newRow.find('tr').last().append("<td> Content </td>").attr("contenteditable", true); 
// Fill the cells with a default text and set the property "editable"
      }
    }

所以我的问题是,如何编写代码,每个单元格是否可编辑?目前,当我点击时,整行可编辑?每个单元都应具有该属性。

我找到了一个可以提供帮助的代码:

//$('table th:nth-child(4)').attr("contenteditable", true)

这使得第4个标题/单元格可以编辑,但是如何使用它,每个新创建的标题/单元格都是第n个孩子?

2 个答案:

答案 0 :(得分:0)

jQuery append函数不返回新的[attached]元素,而是返回附加到的元素,因此代码中出现错误。无论如何,只需在追加字符串中手动设置属性即可。所以,改变这一行:

newRow.find('tr').last().append("<td> Content </td>").attr("contenteditable", true); 

对此:

newRow.find('tr').last().append("<td contenteditable="true"> Content </td>")

应该这样做

答案 1 :(得分:0)

它适用于

$('table td').last().attr("contenteditable", true);