如何将变量作为函数参数传递

时间:2011-08-26 15:22:47

标签: javascript html-table row edit

我有这个函数可以将具有类可编辑(td.editable)的单元格转换为输入字段。现在,您必须将行传递给函数。例如:editRow(myRow)

所以使用this.parentNode.id,我得到了行的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 个答案:

答案 0 :(得分:4)

editRow不占用行ID,它占用整行(DOM元素本身)。你只是传递错误的数据。尝试:

$('.editable').click(function(){
    editRow(this.parentNode);
});

答案 1 :(得分:0)

鉴于你的功能:

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

您正在将id传递给editRow函数。所以在editRow中,你可以这样做:

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

'#'是jquery id选择器