Я боролся с этой проблемой уже несколько часов, не понимая, какое у меня поведение.Я не нашел этой проблемы ни в одном другом сообщении (хотя я нашел много связанных с .each()
методом).
В любом случае, я здесь:
Это HTML-код, на который нужно перейти:
<input type="text" id="investment" /><br />
<table id="fundTable">
<tr>
<td class="rentability"> <span class="someClass"> 0.12 </span> </td>
<td class="absoluteResult"></td>
</tr>
<tr>
<td class="rentability"> <span class="someClass"> 0.24 </span> </td>
<td class="absoluteResult"></td>
</tr>
<tr>
...
</table>
Идея такова: пользователь введетзначение в textField #investment
.onChange
, JQuery будет заполнять столбец таблицы .absoluteResult
путем умножения введенного пользователем значения на .rentability
.
Тогда вот часть JQuery:
$('#investment').change(function() {
var investment = $('#investment').val(),
currentlyDisplayedRentability,
updatedAbsoluteResult
$('#fundTable tr').each(function(index, tableRow) {
currentlyDisplayedRentability = $(tableRow + "span").html()
currentlyDisplayedRentability = parseFloat(currentlyDisplayedRentability)
updatedAbsoluteResult = currentlyDisplayedRentability * investment
$(tableRow + "td[class=absoluteResult]").html(updatedAbsoluteResult)
})
})
В результате все строки .absoluteResult
заполняются с использованием значения первой строки столбца .rentability
.Только одно значение используется для всего умножения.Это как если бы .each()
правильно перебирает один столбец (.absoluteResult
), а другой - нет (.rentability
).
Я не понимаю, почему.