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

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

Моя таблица похожа на это:

<table id="mytable">
  <tr>
    <th>Customer Id</th>
    <th>Result</th>
  </tr>
  <tr>
    <td>123</td>
    <td></td>
  </tr>
  <tr>
    <td>456</td>
    <td></td>
  </tr>
  <tr>
    <td>789</td>
    <td></td>
  </tr>
</table>

Я в основном хочу циклично выполниться через таблицу и получить значение Customer Id столбец для каждой строки.

В коде ниже я решил, что должен сделать это для получения его цикличное выполнение через каждую строку, но я не уверен, как получить значение первой ячейки в строке.

$('#mytable tr').each(function() {
    var cutomerId = 
}
205
задан Robert 2 July 2015 в 01:46
поделиться

4 ответа

Если Вы можете, могло бы стоить использовать атрибут класса на TD, содержащем идентификатор клиента, таким образом, можно записать:

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

По существу это совпадает с другими решениями (возможно потому что я вставляемый копией), но имеет преимущество, что Вы не должны будете изменять структуру своего кода, если Вы переместите столбцы или даже поместите идентификатор клиента в <span>, если Вы сохраняете атрибут класса с ним.

Между прочим, я думаю, что Вы могли сделать это в одном селекторе:

$('#mytable .customerIDCell').each(function() {
  alert($(this).html());
});

, Если это делает вещи легче.

296
ответ дан LogicalBranch 23 November 2019 в 04:51
поделиться
$('#mytable tr').each(function() {
    var customerId = $(this).find("td:first").html();    
});

то, Что Вы делаете, выполняет итерации через весь trs в таблице, находя первый td в текущем TR в цикле, и извлекая его внутренний HTML.

Для выбора конкретной ячейки можно сослаться на них с индексом:

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

В вышеупомянутом коде, я буду получать значение третья строка (индекс основан на нуле, таким образом, первый индекс ячейки был бы 0)

<час>

, Вот то, как можно сделать это без jQuery:

var table = document.getElementById('mytable'), 
    rows = table.getElementsByTagName('tr'),
    i, j, cells, customerId;

for (i = 0, j = rows.length; i < j; ++i) {
    cells = rows[i].getElementsByTagName('td');
    if (!cells.length) {
        continue;
    }
    customerId = cells[0].innerHTML;
}

​

126
ответ дан Andrey 23 November 2019 в 04:51
поделиться

меньше-jquerish подхода:

$('#mytable tr').each(function() {
    if (!this.rowIndex) return; // skip first row
    var customerId = this.cells[0].innerHTML;
});

это может, очевидно, быть изменено для работы с не первые ячейки.

17
ответ дан Jimmy 23 November 2019 в 04:51
поделиться
$('#mytable tr').each(function() {
  // need this to skip the first row
  if ($(this).find("td:first").length > 0) {
    var cutomerId = $(this).find("td:first").html();
  }
});
7
ответ дан Cheeso 23 November 2019 в 04:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: