Как получить значение ячейки таблицы, используя jQuery - PullRequest
2 голосов
/ 10 апреля 2011

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

У меня также нет идентификатора для таблицы или строк ... только для class=columndata дляtd.

$('#mytable tr').each(function() {
    var customerId = $(this).find("td").eq(2).html();    
}

получит единственный td фиксированного tr?

Вот мои данные таблицы:

<tr valign="top">
    <td class="columnaction" valign="center">
        <img src="../images/spacer.gif" width="1" height="1" />
        <a href="javascript:void(0);" class="columnactionlink" onclick="return doAccept('599577', '1', '','');" alt="Accept">Accept</a>
    </td>
    <td class="columndata">Message</td>
    <td class="columndata">Test</td>
    <td class="columndata"></td>
    <td class="columndata"></td>
    <td class="columndata">04/09/2011 23:59</td>
    <td class="columndata">04/09/2011</td>
    <td class="columndata">05/12/2011 07:00</td>
    <td class="columndata">05/13/2011 07:00</td>
    <td class="columndata"></td>
    <td class="columndata">Doe, Jeffrey A. (xx)</td>
    <td class="columndata">913014405580</td>
    <td class="columndata">Skip</td>
    <td class="columndata">04/09/2011 16:37</td>
    <td class="columndata">C</td>
    <td class="columndata">Doe,J</td>
    <td class="columndata">04/09/2011 16:37</td>
    <td class="columndata">04/09/2011 23:59</td>
    <td class="columndata">04/09/2011 16:34</td>
</tr>

Вот ссылка на подобныйвопрос: Как получить значение ячейки таблицы с помощью jQuery?

Ответы [ 4 ]

5 голосов
/ 10 апреля 2011

Это тот селектор, который вам нужен:

$('#mytable tbody tr td:nth-child(2)')
3 голосов
/ 26 декабря 2011

Вне контекста здесь, но может помочь вам: если у вас более 100 или около того строк, приведенный выше код будет немного медленнее, 1000 строк и производительность будет намного ниже, в этом случае вы можете пойти с:

$('td:nth-child(2)', '#mytable') //$(selector, context)

и цикл for, где вы должны сначала кэшировать этот объект, как

var items = $('td:nth-child(2)', '#mytable');
for(var i=0;i<items.length;i++)
{
    //your code
}

С уважением, SJ

3 голосов
/ 10 апреля 2011

Как @danip указал в своем заявлении, вы можете напрямую получить доступ к TD через действительный селектор CSS

$('#mytable tbody tr td:nth-child(2)')

небольшое описание, что он здесь делает

  1. он выбирает таблицу с id = mytable, обращаясь к ней с помощью # mytable
  2. затем он спускается к столу
  3. он выбирает все три таблицы этой таблицы, но далее определяет
  4. , чтобы выбрать все tds под каждым tr
  5. наконец он выбирает из всех этих тдс только вторую для каждого тр в таблице!

вы можете перебирать возвращаемые элементы dom через каждый, как здесь, и получать HTML или Textcontent с помощью html () или () text

$('#mytable tbody tr td:nth-child(2)').each(function() {
   output += $(this).text();
});

посмотрите этот jsfiddle, чтобы попробовать сами

http://jsfiddle.net/SdBBy/

Привет

1 голос
/ 10 апреля 2011

используйте .text() вместо .html().

...