Javascript 添加表行后如何更改select id的名称?

Javascript 添加表行后如何更改select id的名称?,javascript,html,insert,cells,Javascript,Html,Insert,Cells,在表中,我有两个选择,都是从数据库中获取值。 按add按钮添加新行时,我想将select id的名称更改为 设施2,货币2 设施3,货币3 等等但我不知道如何改变它们 这是我创建的表: <table id="tableInformation"> <tr> <td><label>No</label></td> <td><label>Facility</label><

在表中,我有两个选择,都是从数据库中获取值。 按add按钮添加新行时,我想将select id的名称更改为 设施2,货币2 设施3,货币3 等等但我不知道如何改变它们

这是我创建的表:

<table id="tableInformation">
  <tr>
    <td><label>No</label></td>
    <td><label>Facility</label></td>
    <td><label>Currency</label></td>
    <td></td>
  </tr>
  <tbody>
  <tr>
    <td><label>1</label></td>
    <td><div id="facility">
        <select id="facility1" name="facility">
          <option value=""></option>
          <option value="AL">AL</option>
          <option value="BL">BL</option>
          <option value="CL">CL</option>
        </select>
     </td>
     <td><div id="currency">
        <select id="currency1" name="currency">
          <option value=""></option>
          <option value="idr">IDR</option>
          <option value="usd">USD</option>
          <option value="aud">AUD</option>
          <option value="jpy">JPY</option>
        </select>
     </td>
     <td><input type="button" id="btnAddRows" value=" + "
          onclick=\'addRows()\' />
  </tr>
  </tbody>
 </table>
这是javascript:

function addRows() {
    var table = document.getElementById('tableInformation');
    var rowCount = table.rows.length;
    var iteration = rowCount -1;
    var numbers = iteration +1;
    var row = table.insertRow(rowCount);
    var colCount = table.rows[0].cells.length;

    // Cell for number
    var cell = row.insertCell(0);
    var label = document.createElement('label');
    label.textContent = numbers;
    cell.appendChild(label);

    for(var i=1; i<colCount; i++) {

        var newcell = row.insertCell(i);
        newcell.innerHTML = table.rows[1].cells[i].innerHTML;
        //alert(table.rows[1].cells[i].innerHTML);
        //alert(newcell.childNodes);

    }

}

提前感谢。

有很多方法可以做到这一点。这里有一个小的补充,你已经有了

加:

…致:

table.rows[1].cells[i].innerHTML
说明:您正在将HTML从第一行的每个单元格复制到新行中。单元格对象的innerHTML属性是一个字符串。因此,在将字符串应用于新单元格之前,请使用字符串替换函数修改该字符串

此处应用的replace函数使用变量rowCount将id属性值中的数字1替换为新的行号

replace function pattern第一个参数查找正则表达式模式:/id=.+1/

以id=、开头的字符串, 然后捕获一个或多个任意类型的字符, 一个数字1后面跟着一个引号1。 …例如id=currency1

替换第二个参数中的$1提供第一组括号中捕获的文本的值,在本例中:.+

此处不使用,但$2将捕获第二个集合,$3将捕获第三个集合,以此类推。如果圆括号嵌套,则外圆括号将在内圆括号之前捕获

下面是块的结果:


有很多方法可以做到这一点。这里有一个小的补充,你已经有了

加:

…致:

table.rows[1].cells[i].innerHTML
说明:您正在将HTML从第一行的每个单元格复制到新行中。单元格对象的innerHTML属性是一个字符串。因此,在将字符串应用于新单元格之前,请使用字符串替换函数修改该字符串

此处应用的replace函数使用变量rowCount将id属性值中的数字1替换为新的行号

replace function pattern第一个参数查找正则表达式模式:/id=.+1/

以id=、开头的字符串, 然后捕获一个或多个任意类型的字符, 一个数字1后面跟着一个引号1。 …例如id=currency1

替换第二个参数中的$1提供第一组括号中捕获的文本的值,在本例中:.+

此处不使用,但$2将捕获第二个集合,$3将捕获第三个集合,以此类推。如果圆括号嵌套,则外圆括号将在内圆括号之前捕获

下面是块的结果:


哦,谢谢。我从来没有想过使用替换将是这样的工作。我知道我必须小心使用replace,因为如果我使用1而不是id,它会改变值。还有一个问题,它是否可以使用replace删除行?您想知道如何删除行吗?如果是,请阅读以下内容:。如果我误解了,请详细说明,如果不是同一主题,可能会问一个新问题。在找到我的案例答案之前,我已经完成了删除。Remove函数正在工作,但无法更改数字,例如:当您添加了三次行,然后删除了第二行时,最后一行id的名称将是2而不是3。我用replace尝试了你的技巧,但没有改变。是的,我最好问个新问题。谢谢,哦,谢谢。我从来没有想过使用替换将是这样的工作。我知道我必须小心使用replace,因为如果我使用1而不是id,它会改变值。还有一个问题,它是否可以使用replace删除行?您想知道如何删除行吗?如果是,请阅读以下内容:。如果我误解了,请详细说明,如果不是同一主题,可能会问一个新问题。在找到我的案例答案之前,我已经完成了删除。Remove函数正在工作,但无法更改数字,例如:当您添加了三次行,然后删除了第二行时,最后一行id的名称将是2而不是3。我用replace尝试了你的技巧,但没有改变。是的,我最好问个新问题。非常感谢。
for(var i=1; i<colCount; i++) {
  var newcell = row.insertCell(i);
  newcell.innerHTML = table.rows[1].cells[i].innerHTML.replace(/id="(.+)1"/, 'id="$1' + rowCount + '"');
}