Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Не работает traversing (https://javascript.ru/forum/jquery/11213-ne-rabotaet-traversing.html)

Konstantin Cherednichenko 13.08.2010 10:35

Не работает traversing
 
Здравствуйте!

Есть таблица:

...
<tr>
<td>10</td>
<td>4</td>
<td><input type="text" name="item1" /></td>
<td>0</td>
</tr>
...

хочу реализовать суммирование первой и второй ячейки с последующем умножением результата на содержимое INPUT и выводом в последнюю ячейку.

$('#order input').keyup(function(){
var input = $(this);
input.next().html( (input.prev().prev().text() + input.prev().text()) * input.val());
});

Проблема в том что данный код не может получить значения ячеек. Пробовал через .html() - тоже нет результата.

Помогите пожалуйста.

exec 13.08.2010 10:58

$('#order input').keyup(function(){
	var node = $(this).parent();
	node.next().html( (+node.prev().prev().html() + +node.prev().html()) * +$('input', node).val() );
});


Хотя лучше назначить таблице ID и сделать по-человечески:

<table id="foo">
	<tr>
		<td>
			100
		</td>
		<td>
			300
		</td>
		<td>
			<input type="text" value="600" />
		</td>
		<td>
		</td>
	</tr>
</table>
<script type="text/javascript">
var table = $('#foo'),
cells = $('td', table);
$('input', table).keypress(function () {
	cells[3].innerHTML = (+cells[0].innerHTML + +cells[1].innerHTML) * +this.value;
});
</script>

Konstantin Cherednichenko 13.08.2010 11:02

спасибо! все получилось!


Часовой пояс GMT +3, время: 10:46.