JQuery доступ к пользовательской коллекции через табличный индекс? - PullRequest
0 голосов
/ 17 июля 2009

у меня есть стол

<table>
<tr>
   <td class="myA">Data...1a</td>
   <td class="myA">Data...2a</td>
   <td class="myA">Data...3a</td>
</tr>
<tr>
   <td class="myB">Data...1b</td>
   <td class="myB">Data...2b</td>
   <td class="myB">Data...3b</td>
</tr>
<tr>
   <td class="myC">Data...1c</td>
   <td class="myC">Data...2c</td>
   <td class="myC">Data...3c</td>
</tr>
</table>

, что есть у нас часто: данные разделяются не одной строкой, а их столбцами часто данные находятся в разных строках, но в одних и тех же позициях td (потому что связанные данные должны записываться между собой).

Так что я подумал, что если у меня есть индекс, можно получить фильтр классов и .get(theIndex) в каждой строке tr для извлечения данных из индивидуума td

Но есть ли простой способ? -> Я хотел бы извлечь данные, которые принадлежат друг другу, за один шаг -> и после этого, возможно, они находятся в одном наборе массив / jquery?

Есть идеи? (Я не могу добавить идентификаторы и т. Д. - у меня есть только индекс td и classNames).

Ответы [ 3 ]

1 голос
/ 17 июля 2009

Вот, вероятно, то, что вы ищете:

<html>
    <head>
    </head>
    <body>
        <table>
            <tr>
                <td class="A">First Name 1</td>
                <td class="A">First Name 2</td>
                <td class="A">First Name 3</td>
            </tr>
            <tr>
                <td class="A">Last Name 1</td>
                <td class="B">Last Name 2</td>
                <td class="B">Last Name 3</td>
            </tr>
        </table>
        <script src="jquery-1.3.2.min.js"></script>
        <script>
        $(function() {
            var idx = 2;
            var data = [];
            $("tr td:nth-child(" + idx +")")
            .each(function() { 
                data[data.length] = $(this).text(); 
            });
            var person = { 
                firstName : data[0], 
                lastName : data[1] };

            alert (person.firstName + " " + person.lastName);
        });
        </script>
    </body>
</html>

Приведенный выше пример даст вам имя 2 и фамилию 2 из нескольких строк (td index = 2)

0 голосов
/ 17 июля 2009

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

function get_table_column(table, index) {
    cells = []
    $('tr', table).each(function() { 
        cells.push ($('td:eq(' + index + ')', this));
    });

    return cells;        
}
0 голосов
/ 17 июля 2009

Действительно трудно понять, чего вы пытаетесь достичь. Если вы знаете конкретную строку, к которой хотите получить доступ, вы всегда можете сделать это,

var rowIndex = 1;
$('table tr:eq(' + rowIndex + ') td').each( function() { /* cell for the row identified by rowIndex. */});

Вы также можете получить доступ ко всем тдс с одинаковым именем класса.

$('td.myB').each( function() { } ); //Access all the cells having class 'myB'.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...