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元素匹配: