JQuery фильтрация и сортировка таблиц - как посмотреть "внутри" HTML-теги - PullRequest
1 голос
/ 29 сентября 2011

Я использую библиотеку таблиц . Моя проблема в том, что каждый элемент в ячейке внутри моей таблицы является ссылкой, и библиотека начинает неправильно сортировать вещи, потому что она смотрит на HTML внутри ячейки, а не на текст. Другими словами, в следующем содержании ячейки;

<a href="ledger.php?var=345345">$100.64</a> сортирует по:

<a href="ledger.php?var=345345"> вместо $100.64

Я знаю, что есть способы посмотреть на текст внутри ячеек. Я начал с простого метода, который они перечислили на сайте, метод извлечения текста . Тем не менее, я не могу на всю жизнь заставить это функционировать должным образом.

Используя мой код JS, может кто-нибудь сказать мне, как правильно применить это извлечение текста? Это то, что у меня сейчас (ниже).

Текущие результаты этого кода, когда строка «извлечение текста» НЕ закомментирована, заключается в том, что плагин не загружается, и все jQuery на странице не с ним. Ошибка консоли в плагине для веб-разработчиков:

Ошибка: node.childNodes [0] .childNodes [0] не определен Исходный файл:

$(document).ready( function () {
            // TableSorter
                $("#dt-results") 
                .tablesorter({
                                widgets: ['zebra'], 
                                sortList: [[0,1]],

                                // define a custom text extraction function 
                                textExtraction: function(node) { 
                                    // extract data from markup and return it  
                                    return node.childNodes[0].childNodes[0].innerHTML; 
                                } 
                })
                .tablesorterPager({container: $("#pager")})
                .tablesorterFilter({filterContainer: $("#filter-box"),
                              filterClearContainer: $("#filter-clear-button"),
                              filterCaseSensitive: false,
                              filterWaitTime: 100});
        });

Спасибо

1 Ответ

5 голосов
/ 29 сентября 2011

Поскольку вы используете jQuery, почему бы вам не использовать text()? Смотри http://api.jquery.com/text/

textExtraction: function(node) {
    return $(node).text();
}
...