Javascript 如何使用jQuery获取表中所有行中元素的id

Javascript 如何使用jQuery获取表中所有行中元素的id,javascript,jquery,Javascript,Jquery,我的表id是“termTable”。我正在遍历表的每一行。textbox的id是“label'+i+',因为我使用for循环随机生成id。i的值可能在添加行或删除行后无序排列。示例:ID是label1、label2、label3。删除第2行后,我将添加另一行。现在ID是label1,label3,label4。我想检索所有textbox元素的所有ID。我怎样才能做到呢?请帮忙 for (var i = 0; i < firstTabLength; i++) { var row =

我的表id是“termTable”。我正在遍历表的每一行。textbox的id是“label'+i+',因为我使用for循环随机生成id。i的值可能在添加行或删除行后无序排列。示例:ID是label1、label2、label3。删除第2行后,我将添加另一行。现在ID是label1,label3,label4。我想检索所有textbox元素的所有ID。我怎样才能做到呢?请帮忙

for (var i = 0; i < firstTabLength; i++) {
    var row = $("#termTable tr").eq(i);
    var id = row.find('input[type="text"]').attr('id');   // I could see id = undefined             
}
for(变量i=0;i
这是Html。这用于将新行添加到表中。我猜您可以借助下面的代码可视化表结构

function AddCustomTerm1() {
    len = len + 1;
    var table = document.getElementById("termTable");
    var rowCount = table.rows.length;
    var row = table.insertRow(rowCount);
    row.insertCell(0).innerHTML = '<input type="text" class="form-control" id="label' + (len - 1) + '" name="label' + (len - 1) + '" value=""><input type="hidden" id="step' + (len - 1) + '" value="1"/>';
    row.insertCell(1).innerHTML = '<select class="form-control" id="dataTypes' + (len - 1) + '" name="dataTypes' + (len - 1) + '"  onchange="changeDataType(this)"></select>'
    row.insertCell(2).innerHTML = '<input type="text" class="form-control" id="ContractTerm' + (len - 1) + '" name="ContractTerm' + (len - 1) + '" value="">';

    var DD = document.getElementById("dataTypes" + (len - 1));

    for (var i = 0; i < datatypesarray.length; i++) {
        var opt = document.createElement("option");
        opt.text = datatypesarray[i];
        opt.value = datatypesarray[i];
        DD.appendChild(opt);
    }
函数AddCustomTerm1(){
len=len+1;
var table=document.getElementById(“术语表”);
var rowCount=table.rows.length;
var row=table.insertRow(rowCount);
row.insertCell(0.innerHTML='';
row.insertCell(1.innerHTML=“”
insertCell(2.innerHTML='';
var DD=document.getElementById(“数据类型”+(len-1));
对于(变量i=0;i
没有你的html格式帮不了什么忙

但试试这个,你们甚至不需要for循环就可以从表中获取所有的文本框和它们的ID

   var ids=[];
    $('#termTable input[type="text"]').each(function(){
      ids.push($(this).attr('id'))
    })
如果您想要表格第一列中文本框的ID,请尝试以下操作

var ids=[];
        $('#termTable tr').each(function(){
          ids.push($(this).find('td:first-child input[type="text"]').attr('id'))
        })

由于一行中有多个
input[type=“text”]
,因此您应该选择第一个。此外,您还可以使用
each()
而不是
for

$('#termTable tr').each(function() {
    var id = $(this).find('input[type="text"]:first').attr('id');
    console.log(id);
});

使用
$(“#termTable input”)
查找表中的所有输入元素,并循环使用
$的所有选定元素。每个
API

使用如下代码

var InputIds = [];  //array to hold your id's
$.each($('#termTabel input[type="text"]'),function(i,v){
     InputIds.push($(this).attr('id'));
});
console.log(InputIds.toString());

示例:

最佳实践是将特定类添加到所有需要迭代的元素中

例如,将类
术语表输入添加到输入中:

row.insertCell(0).innerHTML = '<input type="text" class="form-control term-table-input" id="label' + (len - 1) + '" name="label' + (len - 1) + '" value=""><input type="hidden" id="step' + (len - 1) + '" value="1"/>';
此外,您还可以在此处阅读有关编写高效css的更多信息:

FirstTableLength是表中的行数,非常感谢。工作正常。很高兴它帮助了您@PSriharsha。
row.insertCell(0).innerHTML = '<input type="text" class="form-control term-table-input" id="label' + (len - 1) + '" name="label' + (len - 1) + '" value=""><input type="hidden" id="step' + (len - 1) + '" value="1"/>';
var termTableInputIDs = [];

$('.term-table-input').each(function () {
    termTableInputIDs.push($(this).attr('id'));
});