Использовать jquery для получения текста из столбцов таблицы, где столбец содержит текст? - PullRequest
1 голос
/ 02 июня 2010

Я пытаюсь вернуть столбцы текста, где столбец содержит определенный текст.

Например: я ищу текст "02/06/2010".

<table>
    <tr>
        <td>Item Title1</td>
        <td>Item Category</td>
        <td>02/06/2010</td>
    </tr>    
    <tr>
        <td>Item Title2</td>
        <td>Item Category</td>
        <td>02/06/2010</td>
    </tr>
    <tr>
        <td>Item Title3</td>
        <td>Item Category</td>
        <td>10/07/2010</td>
    </tr>
</table>

Для каждой строки, содержащей текст, я хотел бы иметь возможность циклически просматривать и использовать информацию из столбцов строк.

Мне удалось этого добиться (см. Ниже), но я не могу получить доступ к другим столбцам. Это также неэффективно и занимает около 10 секунд для таблицы с 2000 строками.

$('table tr td:nth-child(2) :contains("02/06/2010")');

1 Ответ

1 голос
/ 02 июня 2010

Попробуйте вместо этого, это может быть быстрее:

$('table tr td:nth-child(2)').filter(function() {
    return $(this).text().indexOf('02/06/2010') != -1;
}).closest('tr').css("border", "1px red solid");

Кроме того, поскольку у вас, кажется, достаточно большой набор данных, нет ничего плохого в том, чтобы дать чистое решение DOM, например ::1004*

var table = document.getElementsByTagName("table")[0];
var rows = table.getElementsByTagName("tr");
for(var i = 0; i < rows.length; i++) {
    var cell = rows[i].getElementsByTagName('td')[2];
    var cellText = cell.childNodes[0];
    if(cellText.data == '02/06/2010') {
        // do something with cell
    }
}

Попробуйте здесь: http://jsfiddle.net/ANsUq/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...