jQuery DataTables: как получить индекс строки (или nNode) по идентификатору строки tr?
у меня есть dataTables <table id="myTable">
. Я хотел бы fnUpdate()
и fnDestroy()
мои строки. каждая строка имеет идентификатор, например:<tr id="16">
.
К fnUpdate()
/fnDestroy()
соответствующую <tr>
, мне нужно получить индекс строки. Для этого я пытаюсь использовать fnGetPosition()
, но то, как я пытаюсь это сделать, не так:
$("#myTable").fnGetPosition( $("#16") )
результаты
TypeError: nNode.nodeName не определено [перерыв на этой ошибке] var Сноуденом = nNode.nodeName.toUpperCase ();
что имеет смысл, как fnGetPosition()
expexts nNode (в моем случае HTMLTableRowElement).
как получить HTMLTableRowElement, который имеет id="16"
?
изменить:
Правильный ответ на мой вопрос: document.getElementById("16")
. Исходя из этого, я хотел бы изменить мой вопрос:
почему
$("#myTable").fnGetPosition( document.getElementById("16") )
работает, а
$("#myTable").fnGetPosition( $("#16") )
сбой?
3 ответов
документ.getElementById () возвращает объект DOM, и все в объекте DOM будет по своей сути доступно.
в jQuery $('#...') возвращает оболочку вокруг одного объекта DOM или набора объектов DOM (в зависимости от селектора) и, как таковой, не возвращает фактический объект DOM. Это упрощает работу с объектами DOM.
причиной, по которой вы получаете эту ошибку во втором случае, будет $(#...) на самом деле не является объектом DOM.
для тех, кто еще имеет эту проблему, попробуйте следующее:
$("#myTable").fnGetPosition( $("#16")[0] )
чтобы получить тот же результат, что и document.getElementById
вы должны получить доступ к первому элементу в объекте jQuery.
вы должны сделать:
var oTable = $('#myTable').dataTable();
oTable.fnGetPosition( $("#myTable #16") );