Javascript 单击按钮查找文本框的自动生成id

Javascript 单击按钮查找文本框的自动生成id,javascript,jquery,Javascript,Jquery,但返回的值未定义。 文本框的id是自动生成的,因此我需要在单击按钮时找到id。 如何做到这一点?我假设tds在tr内 您可以使用此选择器 var textboxid=$('input[id="File"]').closest('input[type="text"]').attr("id"); 试试这个(可能还没试过): 它应该由点击或其他方式触发吗?尝试使用.parentsUntil,:has() $(“#文件”)。单击(函数(){ var textboxid=$(this.paren

但返回的值未定义。 文本框的id是自动生成的,因此我需要在单击按钮时找到id。
如何做到这一点?

我假设tds在tr内

您可以使用此选择器

 var  textboxid=$('input[id="File"]').closest('input[type="text"]').attr("id");

试试这个(可能还没试过):


它应该由点击或其他方式触发吗?

尝试使用
.parentsUntil
:has()

$(“#文件”)。单击(函数(){
var textboxid=$(this.parentsUntil(“td:has(:text)”).find(:text”).attr(“id”)
console.log(textboxid)
})

字段值

请用“我的代码”替换您的代码,其中只需添加prev()函数

var textboxid = $('#File').parent().find('input[type=text]').first().attr("id");

问题是文本框位于不同的td中,请尝试以下操作:

$(函数(){
$('#文件')。在('click',function()上{
警报($(this).parent().prev('td').children('input[type=text]')).prop('id'));
});
});

字段值
您可以使用jquery api来实现这一点。试试

Javascript代码

var textboxid=$('input[id="File"]').prev().closest('input[type="text"]').attr("id");
编辑:对于中提供的更新标记,我使用了和jquery api

$(document).ready(function(){
    $('#File').click(function(e){
        console.log($(this).prev('input[type=text]').prop('id'));
        alert($(this).prev('input[type=text]').prop('id'));
        e.preventDefault();
    });
});

希望这有助于….

查看我更新的回答说明,
.prev()
td
tr
tbody
元素的子元素时,不会返回相同的结果
var textboxid = $('#File').parent().find('input[type=text]').first().attr("id");
var textboxid=$('input[id="File"]').prev().closest('input[type="text"]').attr("id");
$(document).ready(function(){
    $('#File').click(function(e){
        console.log($(this).prev('input[type=text]').prop('id'));
        alert($(this).prev('input[type=text]').prop('id'));
        e.preventDefault();
    });
});
    $(document).ready(function () {
        $('#File').click(function (e) {
               var id = $(this).closest('td').prev('td').find('input[type=text]').prop('id');    
               alert(id);
               e.preventDefault();
        });
    });