jQuery получает <td>текст из <tr>id, <td>генерируется динамически, поэтому я не знаю, как это возможно - PullRequest
6 голосов
/ 09 июля 2009

У меня уже есть функция jQuery для выполнения нужной задачи, но есть ли способ циклически проходить по <td> ячейкам определенного <tr> с id = "Генерируемый_row"

<table>
<tr id="generated_rows">
<td class="row_class" id="row_id_1">text 1</td>
<td class="row_class" id="row_id_2">text 2</td>
<td class="row_class" id="row_id_3">text 3</td>
<td class="row_class" id="row_id_4">text 4</td>
<td class="row_class" id="row_id_5">text 5</td>
</tr>
</table>

Нужно это:

<table>
<tr id="generated_rows">
<td class="row_class" id="row_id_1">text 1.00</td>
<td class="row_class" id="row_id_2">text 2.00</td>
<td class="row_class" id="row_id_3">text 3.00</td>
<td class="row_class" id="row_id_4">text 4.00</td>
<td class="row_class" id="row_id_5">text 5.00</td>
</tr>
</table>

ФУНКЦИЯ НИЖЕ СЕЙЧАС РАБОТАЕТ!

// Check for whole numbers and append .00
$('#generated_rows td.row_class').each(function() {
     var x = Number($(this).text()).toFixed(2);
     $(this).text(x);
});

1 Ответ

16 голосов
/ 09 июля 2009

Вы близки, просто нужно использовать td вместо tr в вашем селекторе. Вот моя версия, чтобы добавить «.00» в конце текста ячейки (при условии, конечно, что все числа не в фиксированном формате)

$("#generated_rows > td.row_class").each(function() { 
    var $this = $(this);
    var splitText = $this.text().split(' ');
    splitText[1] = Number(splitText[1]).toFixed(2);
    $this.text(splitText.join(' '));
});
...