Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery使用附加的HTML从元素中获取值_Javascript_Jquery_Html - Fatal编程技术网

Javascript jQuery使用附加的HTML从元素中获取值

Javascript jQuery使用附加的HTML从元素中获取值,javascript,jquery,html,Javascript,Jquery,Html,我附加了一个带有拖放库的表,用于上传文件。但是,当删除文件时,我需要为此文件创建名称和描述。但是,当有人在名称中写入时,我似乎无法从文本框中获取元素 这是代码和我的尝试 $.each(data.files, function (index, file) { $('#TestTable > tbody:last-child').append('<tr><td>' + file.name + '</td><td><inpu

我附加了一个带有拖放库的表,用于上传文件。但是,当删除文件时,我需要为此文件创建名称和描述。但是,当有人在名称中写入时,我似乎无法从文本框中获取元素

这是代码和我的尝试

$.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
            });

        });
$。每个(数据文件、函数(索引、文件){
$(“#TestTable>tbody:last child”).append(“”+file.name+“”);
data.context=$('').text('Upload')
.addClass(“btn btn主启动”)
.appendTo(“#TestTable>tbody:last child”)
。单击(函数(){
//这就是问题所在
警报($('#文件上载标题'+file.name).val());=未定义
});
});
您可以看到,当我附加表时,我为
文件上载标题
输入文本对象使用了唯一的ID(如果有许多文件)

加载文档后,如何从编写HTML中获取值

编辑

有一个对象存在于
$(“#文件上载标题”+file.name)
,但没有
val()


谢谢

您可以使用
this
关键字引用引发事件的元素,而不是将选择器拼凑在一起。从那里,您可以使用DOM遍历方法来查找相关的
输入。您尚未显示您的HTML,因此我无法给出具体示例,但可能是这样的:

// your code...
.click(function () {
    var $input = $(this).closest('tr').find('input');
    console.log($input.val());
});

您没有获取元素,因为您正在追加此元素,所以在页面加载时这些元素不会加载到文档中,您需要将此元素绑定到文档中,这样才能正常工作。。read如果有一个演示就好了我明白你说的了,不过
这个
将是按钮,所以我会使用
查找
获取
来找到正确的元素?没错。我看不到按钮相对于输入的位置,因此给你一个具体的例子。谢谢Rory,在你编辑之前,我看到我可以通过开发者控制台访问输入类型。谢谢你帮我清理。没问题,很乐意帮忙