我附加了一个带拖放库的表,用于上传文件。但是,当删除文件时,我需要为此文件创建名称和描述。但是,当有人写下名字时,我似乎无法从文本框中获取元素。
这是代码和我的尝试。
$.each(data.files, function (index, file) {
$('#TestTable > tbody:last-child').append('<tr><td>' + file.name + '</td><td><input id="file-upload-title' + file.name + '" type="text"></td></tr>');
data.context = $('<button/>').text('Upload')
.addClass("btn btn-primary start")
.appendTo('#TestTable > tbody:last-child')
.click(function () {
// This is the problem
alert($('#file-upload-title' + file.name).val()); = undefined
});
});
您可以看到我在附加表格时使用file-upload-title
输入文本对象的唯一ID(如果文件很多)
如何在文档加载后通过编写HTML来获取值?
修改
$('#file-upload-title' + file.name)
但有val()
谢谢
答案 0 :(得分:3)
您可以使用this
关键字来引用引发事件的元素,而不是将选择器混合在一起。从那里,您可以使用DOM遍历方法来查找相关的input
。你没有展示你的HTML所以我不能给你一个具体的例子,但它会是这样的:
// your code...
.click(function () {
var $input = $(this).closest('tr').find('input');
console.log($input.val());
});