jQuery DataTables: Как получить индекс строки (или nNode) по идентификатору строки tr? - PullRequest
6 голосов
/ 21 сентября 2011

У меня есть dataTables <table id="myTable">.Я хотел бы fnUpdate() и fnDestroy() мои строки.каждая строка имеет идентификатор, например: <tr id="16">.Для fnUpdate() / fnDestroy() соответствующего <tr> мне нужно получить индекс этой строки.Для этого я пытаюсь использовать fnGetPosition(), но способ, которым я пытаюсь это сделать, - не способ сделать это:

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

приводит к

TypeError: nNode.nodeName isundefined [нарушить эту ошибку] ​​var sNodeName = nNode.nodeName.toUpperCase ();

Это имеет смысл, поскольку fnGetPosition() предполагает nNode (в моем случае HTMLTableRowElement).

Как получить HTMLTableRowElement с id="16"?

РЕДАКТИРОВАТЬ: правильный ответ на мой вопрос: document.getElementById("16").Исходя из этого, я хотел бы изменить свой вопрос на:

Почему

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

работает, но

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

не удается?

Ответы [ 3 ]

23 голосов
/ 24 февраля 2012

Для тех, у кого все еще есть эта проблема, попробуйте это:

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

Чтобы получить тот же результат, что и document.getElementById, вы должны получить доступ к первому элементу в объекте jQuery.

12 голосов
/ 22 сентября 2011

document.getElementById () возвращает объект DOM, и все объекты DOM будут по своей природе доступны.

JQuery $ ('# ...') возвращает обертку вокруг одного объекта DOM ИЛИ набора объектов DOM (в зависимости от селектора) и, как таковой, не возвращает фактический объект DOM. Это облегчает работу с объектами DOM.

Причина, по которой вы получаете эту ошибку во втором случае, заключается в том, что $ (# ...) на самом деле не является объектом DOM.

1 голос
/ 21 сентября 2011

Вы должны сделать:

var oTable = $('#myTable').dataTable();
oTable.fnGetPosition( $("#myTable #16") );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...