将当前文本作为参数传递给 jquery 函数

Lam*_*fif 4 html javascript jquery dom

我有这个功能:

function getlst() {
        $.ajax({
            type: "GET",
            url: "/api/Configuration/GetListParameter",
            success: function (data) {
                EmptyGridStep1();
                for (var i = 0; i < data.length; i++) {   
                    $('#tableBody').append('<tr><td><label id="id" name="id" >' + data[i].id + ' </td>'
                     + '<td>' + data[i].key + '</td>' 
                     + '<td><input type="text"   onchange="keydown();"  value="' + data[i].value + '" /></td></tr>');
                }
                initGrid();
            }
        });
    }
Run Code Online (Sandbox Code Playgroud)

按键功能

function keydown(value ) 
{
    alert(value);
}
Run Code Online (Sandbox Code Playgroud)

我想改变:

<td><input type="text" onchange="keydown();" value="' + data[i].value + '" /></td>
Run Code Online (Sandbox Code Playgroud)

将当前文本作为参数传递给keydown函数。

我怎样才能修改我的代码来完成这个任务?

Qua*_*nnt 5

你不必这样做。您所要做的就是将其input本身作为参数传递给您的 keydown 函数

<td><input type="text"   onchange="keydown(this);"  value="' + data[i].value + '" /></td>
Run Code Online (Sandbox Code Playgroud)

并在这里读取它的值

 function keydown(input) 
    {
        alert(input.value);
    }
Run Code Online (Sandbox Code Playgroud)

这不是最优雅的方法,我建议onchange您使用jquery's changeevent 而不是使用 ,这样您的更改事件就有一个侦听器

 $('#tableBody').on("change", "input", function() {
  console.log( this.value );
});
Run Code Online (Sandbox Code Playgroud)

你应该读一下这个