Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   В contains() не подставляется значение переменной (https://javascript.ru/forum/jquery/23885-v-contains-ne-podstavlyaetsya-znachenie-peremennojj.html)

Heger 10.12.2011 12:32

В contains() не подставляется значение переменной
 
Здравствуйте, прошу помощи, ломаю голову уже не один день.
Есть таблица:
<table id='table23' width='80%%' border='1' cellspacing='1' cellpadding='1'>

			<tr>			

			<td>Идентификатор</td>

			<td>Название</td>

            <td>Диаметр</td>

            <td>Цена</td>

            <td>Количество</td>

            <td>Сумма</td>

            <td>В наличии</td>

			</tr>   <tr align='center'>

            <td>10001</td>

            <td align='left'>Товар 1</td>

            <td>32</td>

            <td>4</td>

            <td><input id='10001' name='kolichestvo' type='text' value='5' size='1%'></td>

            <td>0</td>

            <td>0</td>

			</tr>   <tr align='center'>

            <td>10002</td>

            <td align='left'>Товар 2</td>

            <td>32</td>

            <td>3</td>

            <td><input id='10002' name='kolichestvo' type='text' value='0' size='1%'></td>

            <td>0</td>

            <td>0</td>

			</tr></table>


Есть код Jquery:
$("#table23 input").click(function() {
var idTovara = $(this).attr("id");
var cena = $("#table23 tr:contains(idTovara) td:eq(3)").css("border","2px dashed red");
alert(cena);
});


Суть в том что при клике на поле input в переменную idTovara помещается атрибут кликнутого поля, далее в переменную cena я хочу поместить значение ячейки которая находится в td:eq(3) которая находится в ряду tr значение которого содержит значение переменной idTovara. Или говоря по другому мне нужно от ячейки с полем input перейти в ячейку слева и получить ее значение для дальнейших вычислений.
Есть две проблемы:
1. Значение переменной idTovara не передается в contains(), в алерте выводит "[object Object]" и нужная ячейка не подсвечивается рамкой css, тоесть как я понял нужная ячейка никак не определяется. Даже если вручную написать например: var idTovara = 10001;
То картина не меняется.
2. Если прямо в contains() без переменной напишу значение 10001, тоесть так: tr:contains(10001), то ячейка определяется - подсвечивается рамкой css, но алерт всеравно выводит [object Object].

Помогите разобраться с двумя проблемами, очень нужно. Я пробовал в contains писать так: contains("idTovara"), так: contains(+idTovara+), но это не помогает. Подскажите что не так?

Pavel M. 10.12.2011 14:55

Цитата:

Сообщение от Heger
перейти в ячейку слева и получить ее значение для дальнейших вычислений.

это можно так

<table border=1>
<tr>
  <td>123</td>
  <td><input id='10002' name='kolichestvo' type='text' value='0' size='1%'></td>
</tr>
</table>
<script src="http://yandex.st/jquery/1.7.1/jquery.min.js"></script>
<script>
$('table input').click(function () {
  alert('Значение ячейки слева: ' + $(this).parent().prev().text());
});
</script>

Heger 11.12.2011 20:26

Спасибо ОГРОМНОЕ, я только учусь JS, создание моего сайта сдвинулось с мертвой точки. СПАСИБО!


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