insertcell()具有唯一ID

时间:2014-12-18 17:31:29

标签: javascript

我在使用insertRow& amp; insertcell(),我一直在寻找过去几个小时,但不幸的是,我还没有找到答案。

我有一个代码,可以在我的表中添加一个包含5个单元格的新行。

function myCreateFunction() {

var table = document.getElementById("myTable");
var row = table.insertRow(-1);
var cell1 = row.insertCell(0);
var cell2 = row.insertCell(1);
var cell3 = row.insertCell(2);
var cell4 = row.insertCell(3);
var cell5 = row.insertCell(4);
cell1.innerHTML = "<input type=\"text\" id=\"des\" name=\"des\" placeholder=\"\" class=\"form-control input-sm\" value=\"\"/>";
cell2.innerHTML = "<input type=\"text\" id=\"qu\" name=\"qu\" placeholder=\"\" class=\"form-control input-sm\" value=\"\"/>";
cell3.innerHTML = "<input type=\"text\" id=\"pu\" name=\"pu\" placeholder=\"\" class=\"form-control input-sm\" value=\"\"/>";
cell4.innerHTML = "<input type=\"text\" id=\"rl\" name=\"rl\" placeholder=\"\" class=\"form-control input-sm\" value=\"\"/>";
cell5.innerHTML = "<input type=\"text\" id=\"tlht\" name=\"tlht\" placeholder=\"\" class=\"form-control input-sm\" value=\"\"/>";

return false;
}

function myDeleteFunction() {
document.getElementById("myTable").deleteRow(-1);

return false
}

每次按下按钮,

onclick="return myCreateFunction()"

添加了一个新行,但问题是,如果我添加2行,则每个5个单元格将具有相同的ID&amp;名称。每个cell1将具有相同的ID,每个cell2将具有相同的ID .....

无需说这是在表单中使用,我需要添加新行并添加内容,这些内容将保存在数据库中。

我需要什么?我需要在每次创建新行时在NAME和ID旁边添加一个数字。

我需要的例子:

如果我点击按钮,它将创建所有5个新单元但ID&amp; NAME更改。这里和现在,第一个单元格的名称和ID是&#34; des&#34;当按钮点击我需要des1时,当我再次点击时,我创建了一个新行,但是单元格名称和id是des2 .. des3 ... des4 ...该号码应该应用于所有id和名称&#39 ;在OnClick上创建的所有单元格的。

不知道它是否足够清楚。

非常感谢,非常感谢帮助。

3 个答案:

答案 0 :(得分:0)

创建一个像count一样的全局变量,并用它来创建id。

注意:检查时,您可以在字符串中使用'而不是\"来澄清:

cell1.innerHTML = "<input type='text' id='des" + count + "' name='des' placeholder='' class='form-control input-sm' value=''/>";

PS:在添加一行结束时记得增加计数并在必要时重置它

count = count + 1

答案 1 :(得分:0)

此处有多个选项: 保留每次调用函数时的跟踪列表

var index = 0;

function myCreateFunction() {
   ....your function.....
   cell.id = "des" + index;
   index++;
}

generate a unique id every time
function newGuid()
{
    //Generates a guid.
    var returnGuid = "";
    var hexChar = "abcdef1234567890";

    for (var i = 0 ; i < 32 ; i++)
    {
        returnGuid += hexChar.charAt(Math.random()*16);
        if(i == 7 || i == 11 || i == 15 || i == 19)
        {
            returnGuid += "-";
        }

    }
    return returnGuid.toString();
}

"... id=\"des\" " + newGuid()

答案 2 :(得分:0)

这是在添加新行时使用的原始代码,这是每次按下按钮ADD LINE(或法语AJOUTER)时输入行的ID应增加的位置

            <div class="row">
                <div class="col-xs-12">
                    <div class="portlet box red ">
                            <div class="portlet-title">
                                <div class="caption">
                                    <i class="fa fa-gift"></i>Devis
                                </div>
                            </div>
                            <div class="portlet-body form">
                                    <table id="myTable">
                                    <tr>
                                        <td width="40%"><center><b>Description</b></center></td>
                                        <td width="10%"><center><b>Quantité</b></center></td>
                                        <td width="20%"><center><b>Prix U HT</b></center></td>
                                        <td width="10%"><center><b>Remise %</b></center></td>
                                        <td width="20%"><center><b>Total</b></center></td>
                                    </tr>
                                    <tr>
                                        <td colspan="5"></td>
                                    </tr>
                                    <tr>
                                        <td width="40%"><input type="text" id="des" name="des" placeholder="" class="form-control input-sm" value="<? echo $_POST['des']; ?>"/></td>
                                        <td width="10%"><input type="text" id="qu" name="qu" placeholder="" class="form-control input-sm" value="<? echo $_POST['qu']; ?>"/></td>
                                        <td width="20%"><input type="text" id="pu" name="pu" placeholder="" class="form-control input-sm" value="<? echo $_POST['pu']; ?>"/></td>
                                        <td width="10%"><input type="text" id="rl" name="rl" placeholder="" class="form-control input-sm" value="<? echo $_POST['rl']; ?>"/></td>
                                        <td width="20%"><input type="text" id="tlht" name="tlht" placeholder="" class="form-control input-sm" value="<? echo $_POST['tlht']; ?>"/></td>
                                    </tr>                                       
                                    </table>
                            </div>
                    </div>
                </div>
            </div>

JS代码一行

<script>
function myCreateFunction() {
var table = document.getElementById("myTable");
var row = table.insertRow(-1);
var cell1 = row.insertCell(0);
var cell2 = row.insertCell(1);
var cell3 = row.insertCell(2);
var cell4 = row.insertCell(3);
var cell5 = row.insertCell(4);
cell1.innerHTML = "<input type=\"text\" id=\"des\" name=\"des\" placeholder=\"\" class=\"form-control input-sm\" value=\"\"/>";
cell2.innerHTML = "<input type=\"text\" id=\"qu\" name=\"qu\" placeholder=\"\" class=\"form-control input-sm\" value=\"\"/>";
cell3.innerHTML = "<input type=\"text\" id=\"pu\" name=\"pu\" placeholder=\"\" class=\"form-control input-sm\" value=\"\"/>";
cell4.innerHTML = "<input type=\"text\" id=\"rl\" name=\"rl\" placeholder=\"\" class=\"form-control input-sm\" value=\"\"/>";
cell5.innerHTML = "<input type=\"text\" id=\"tlht\" name=\"tlht\" placeholder=\"\" class=\"form-control input-sm\" value=\"\"/>";

return false;
}

function myDeleteFunction() {
document.getElementById("myTable").deleteRow(-1);

return false
}