数据表row.add([])传递一个jquery dom?

时间:2016-06-07 16:08:31

标签: javascript jquery datatables

我使用的是dataTable,需要在一列中添加一个jquery dom。以下是我的代码:

var markup = $("<a></a>").addClass("ClassName")
            .attr({ href : "Something.html",title : "Edit"});

var t = $("#myTable").DataTable();

t.row.add( [markup] ).draw( false );

以上代码显示&#34; [object Object]&#34;在列中而不是所需的href。

这是我的表结构:

<table id="myTable" >
 <tbody> 
 </tbody>
 </table>

我在这里做错了什么?

1 个答案:

答案 0 :(得分:2)

你正在传递jquery对象,尝试传递像这样的javascript对象

t.row.add( [markup[0]] ).draw( false );

因为row.add描述为dom对象说明了这一点

  

用于新行的数据。这可能是一个数组,对象,Javascript   对象实例或tr元素。

特别是这部分

  

Javascript对象

<强>更新

我尽可能地尝试但是它没有任何工作,似乎是DataTables中的错误,但是有一种可以使用的解决方法,尝试添加这样的标记

t.row.add([markup.wrap('div').parent().html()]).draw(false);

或者只是直接添加标记,就像这样

t.row.add(['<a class="ClassName" href="Something.html" title="Edit">Edit</a>']).draw(false);

<强> Fiddle Example