2015-02-25 1 views
-1

Я добавил jQuery в более старое приложение. Это вызывает некоторые синтаксические ошибки, поэтому мне нужно обновить старый код для совместимости с jQuery. Для пояснения, как только я включаю jQuery, myTable.rows.length возвращает «undefined». Причина, по которой я включаю jQuery, заключается в том, что я хочу использовать DatePicker в другом месте на странице.Как получить значение дочернего элемента в ячейке таблицы с помощью jquery?

Как только я сменил myTable.rows.length на $('#myTable tr').length;, эта часть работала правильно, что заставило меня поверить, что мне нужно также обновить следующие фрагменты.

Что такое эквивалент следующего кода в JQuery ?: myTable.rows[i].cells[0].children[0].value;

+3

Вы должны быть в состоянии, по крайней мере, поставить отправную точку вместе, глядя через JQuery API. Это не служба преобразования кода – charlietfl

+0

Где вы застряли, когда пытались составить это в jQuery? И, честно говоря, если это работает, почему вы меняете его на jQuery? Вы можете прочитать документацию, сосредоточив внимание на методах обхода. [jQuery API] (http: //api.jQuery,com/). Примечание. Я голосую, чтобы закрыть как «непонятное, что вы просите», из-за комментариев, оставленных в другом месте, предлагая «объяснение», которое не учитывается, и последующие вопросы остались на другом ответе. –

+0

Извините, Дэвид, я попытался добавить некоторые пояснения к основному вопросу. Надеюсь, это полезно. – user4607586

ответ

-1

Было бы

$($("td:first", ($("#myTable tr")[i])).children()[0]).val(); 

Чтобы выбрать к-й тд:

$($($("td", ($("#myTable tr")[i]))[k-1]).children()[0]).val(); 

Несколько проще (i-я строка, j-я ячейка):

$("#myTable tr:nth-child("+i+") td:nth-child("+j+")").children()[0].val(); 
+0

'.children() [0] .val()' будет выдавать ошибку – charlietfl

+0

@charlietfl yep, спасибо. – collapsar

+1

Это очень странный селектор, который вы создали – charlietfl

0

Если все, что вы делаете, работает, зачем его менять?

Я не фанат, но та же идея была бы

$("#myTableId")find("tbody tr").eq(i).find("td").eq(0).children().eq(0).val(); 

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

Если это будет первый вход в первой ячейке было бы просто

var i = 0; 
var rows = $("#myTableId")find("tbody tr"); 
var inputVal rows.eq(i).find("td :input").val(); 
+0

Проблема заключается в том, что старый код не работает после включения jquery. Вот почему мне нужно переписать эту часть его для работы с jquery. Мне нужно манипулировать значениями элементов в динамической таблице. – user4607586

+0

Каким образом «старый код не работает после включения jQuery *»? Откроется фрагмент, который вы показали, не затрагивая включение jQuery. –

+0

После включения jquery, в частности '', 'myTable.rows.length' возвращает "undefined". Я не знаю, почему. – user4607586

Смежные вопросы