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

Javascript jquerydatatables:如何通过tr的行id获取行索引(或nNode)?,javascript,jquery,css,dom,datatables,Javascript,Jquery,Css,Dom,Datatables,我有一个数据表。我想fnUpdate()和fnDestroy()我的行。每行都有一个id,例如:。 要fnUpdate()/fndroduction()适当的,我需要获取该行的索引。为此,我尝试使用fnGetPosition(),但我尝试的方式不是这样做的方式: $("#myTable").fnGetPosition( $("#16") ) 导致 TypeError:nNode.nodeName未定义[Break On This Error]var sNodeName=nNode.nodeNa

我有一个数据表
。我想
fnUpdate()
fnDestroy()
我的行。每行都有一个id,例如:
。 要
fnUpdate()
/
fndroduction()
适当的
,我需要获取该行的索引。为此,我尝试使用
fnGetPosition()
,但我尝试的方式不是这样做的方式:

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

TypeError:nNode.nodeName未定义[Break On This Error]var sNodeName=nNode.nodeName.toUpperCase()

这是有意义的,因为
fnGetPosition()
expxts nNode(在我的例子中是HTMLTableRowElement)

如何获取具有
id=“16”
的HTMLTableRowElement

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

为什么

$("#myTable").fnGetPosition( document.getElementById("16") ) 
工作,但是

$("#myTable").fnGetPosition( $("#16") )
失败?

您应该执行以下操作:

var oTable = $('#myTable').dataTable();
oTable.fnGetPosition( $("#myTable #16") );
getElementById()返回一个DOM对象,并且DOM对象上的所有内容都将固有地可访问

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


在第二种情况下出现该错误的原因是$(#…)实际上不是DOM对象。

对于仍然存在此问题的任何人,请尝试以下方法:

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

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

Hm,这给了我相同的类型错误。我认为
$(“#myTable#16”)
$(“#16”)
相比没有任何改进,因为#16已经是唯一标识符,而且我仍然没有用于
fGetPosition()
的HTMLTableRowElement。这不会起作用,因为它与他的原始代码具有相同的效果。哦,谢谢。有一个get()方法来检索jQuery对象匹配的DOM元素。因此,
$('#16').get()
应该等同于
document.getElementById(“16”)
,或者我缺少什么?是的,根据Jquery API,它通过指定的选择器返回DOM元素匹配: