使用rowIndex在单击的行的正下方插入新行

时间:2014-12-18 05:59:47

标签: javascript php html

下面是我写的代码,用于执行以下操作

  • 每个表格行包含一个' +'按钮

  • 单击按钮时,代码应找到所单击行的行索引

  • 然后新行应该添加到cilcked行的(rowindex + 1)位置。即,在点击的行的正下方。

但现在出现的问题是

  • 按钮内的onclick功能不起作用,如果我在里面写它然后就可以了

  • 点击' cell3'中的按钮不起作用

由于我是php的初学者,非常初学javascript,任何人都可以帮我详细说明

<script>
function myFunction(x) {
var table = document.getElementById("myTable");

var rowno=x.rowIndex;
alert(rowno);

var row = table.insertRow(rowno+1);

var cell1 = row.insertCell(0);
var cell2 = row.insertCell(1);
var cell3 = row.insertCell(2);
cell1.innerHTML = '<input type="text"s name="txt1">';
cell2.innerHTML = '<input type="text" name="txt2">';
cell3.innerHTML = '<input type="button" name="btn" value="+" onclick="myFunction(this)">';

}
</script>
<table id="myTable" border="1">

<tr>
<td>Row1 cell1</td>
<td>Row1 cell2</td>
<td><button onclick="myFunction(this)">+</button></td>
 </tr>

<tr>
<td>Row1 cell1</td>
<td>Row1 cell2</td>
<td><button onclick="myFunction(this)">+</button></td>
</tr>

<tr>
<td>Row1 cell1</td>
<td>Row1 cell2</td>
<td><button onclick="myFunction(this)">+</button></td>
</tr>

</table>

1 个答案:

答案 0 :(得分:2)

您正在将按钮传递给您的函数并尝试查找无法执行的rowIndex。您需要找到按钮的父行的rowIndex。我修改了javascript代码来选择它。这应该有用。

<script type="text/javascript">

    function myFunction(x) {
        var table = document.getElementById("myTable");
        var rowno = x.parentNode.parentNode.rowIndex; //this selects the button's parent row        
        alert(rowno);
        var row = table.insertRow(rowno + 1);
        var cell1 = row.insertCell(0);
        var cell2 = row.insertCell(1);
        var cell3 = row.insertCell(2);
        cell1.innerHTML = '<input type="text"s name="txt1">';
        cell2.innerHTML = '<input type="text" name="txt2">';
        cell3.innerHTML = '<input type="button" name="btn" value="+" onclick="myFunction(this)">';

    }
</script>