Как передать переменную в качестве параметра функции - PullRequest
1 голос
/ 26 августа 2011

У меня есть эта функция, которая превращает ячейки с редактируемым классом (td.editable) в поля ввода. Теперь вам нужно передать строку в функцию. Например: editRow(myRow).

Таким образом, используя this.parentNode.id, я получаю идентификатор строки. Но когда я передаю значение в качестве параметра функции editRow, он ничего не делает.

Я думаю, что функция думает, что rowId является действительным именем строки, вместо использования содержимого переменной rowId в качестве имени строки.

function editRow(row) {
 $('td.editable',row).each(function() {
  $(this).html('<input type="text" value="' + $(this).html() + '" size="10" />');
 });
}    

/* click on cell with .editable class */
 $(".editable").click(function() {
   rowId = this.parentNode.id;
   editRow(rowId);
});

Ответы [ 2 ]

4 голосов
/ 26 августа 2011

editRow не принимает идентификатор строки, он занимает всю строку (сам элемент DOM). Вы просто передаете неправильные данные. Попробуйте:

$('.editable').click(function(){
    editRow(this.parentNode);
});
0 голосов
/ 26 августа 2011

Учитывая вашу функцию здесь:

/* click on cell with .editable class */
$(".editable").click(function() {
rowId = this.parentNode.id;
editRow(rowId);
});

Вы передаете идентификатор своей функции editRow. Так что внутри editRow вы можете просто сделать это:

function editRow(row) {
    $('#' + row +' td.editable').each(function() {
        $(this).html('<input type="text" value="' + $(this).html() + '" size="10" />');
    });
}

'#' - селектор идентификатора jquery

...