繁体   English   中英

jQuery DataTables:如何通过tr的行id获取行索引(或nNode)?

[英]jQuery DataTables: How to get row index (or nNode) by row id of tr?

我有一个dataTables <table id="myTable"> 我想fnUpdate()fnDestroy()我的行。 每一行都有一个id,例如: <tr id="16"> fnUpdate() / fnDestroy()相应的<tr> ,我需要得到该行的索引。 为此我尝试使用fnGetPosition() ,但我尝试它的方式不是这样做的方式:

$("#myTable").fnGetPosition( $("#16") )

结果是

TypeError:nNode.nodeName未定义[Break On此错误] var sNodeName = nNode.nodeName.toUpperCase();

这是有道理的,因为fnGetPosition()取代了nNode(在我的例子中是HTMLTableRowElement)。

如何获取id="16"的HTMLTableRowElement?

编辑:我的问题的正确答案是: document.getElementById("16") 基于此,我想将我的问题改为:

为什么

$("#myTable").fnGetPosition( document.getElementById("16") ) 

工作,但是

$("#myTable").fnGetPosition( $("#16") )

失败?

对于仍有此问题的人,请尝试以下方法:

$("#myTable").fnGetPosition( $("#16")[0] )

要获得与document.getElementById相同的结果,您应该访问jQuery对象中的第一个元素。

document.getElementById()返回一个DOM对象,DOM对象上的所有内容都将被固有地访问。

JQuery的$('#...')返回一个围绕单个DOM对象或一组DOM对象(取决于选择器)的包装器,因此,它不返回实际的DOM对象。 它使得使用DOM对象变得更容易。

您在第二种情况下获得该错误的原因是$(#...)实际上不是DOM对象。

你应该这样做:

var oTable = $('#myTable').dataTable();
oTable.fnGetPosition( $("#myTable #16") );

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM