[英]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.