[英]How to find Position of a child element(number) inside a parent in html using jquery
我有一个HTML表,里面有几行,每行有一个选择控件。
在更改Select control
的change事件时,我需要在其下方添加一行。
但是,仅当Select control
位于最后一行时,才应添加该行。
如何找到存在selectcontrol的行(如第三行)的位置,我无法以任何方式发布此类图像,我的源代码是这样的:
<tbody id="tbdConditionalSearch">
<tr id="trSearchRow">
<td>
<input type="text" value=""/>
</td>
<td>
<select name="selectOperator" onchange="AddConditionalSearchRow(this)">
<option value="-1" selected>Select</option>
<option value="0">AND</option>
<option value="1">OR</option>
</select>
</td>
</tr>
<tr id="trSearchRow">
<td>
<input type="text" value=""/>
</td>
<td>
<select name="selectOperator" onchange="AddConditionalSearchRow(this)">
<option value="-1" selected>Select</option>
<option value="0">AND</option>
<option value="1">OR</option>
</select>
</td>
</tr>
</tbody>
我想在此行下方添加更多行。
即使我在第一行的“选择”控件上进行选择,当前也会添加新行。
纯JS:
function AddConditionalSearchRow(sel) {
var row = sel.parentNode.parentNode;
if (row.rowIndex === row.parentNode.rows.length-1) {
// add a new row
}
}
演示: http : //jsfiddle.net/c9XYS/
jQuery的:
function AddConditionalSearchRow(sel) {
if ($(sel).closest("tr").is(":last-child")) {
// add a new row
}
}
演示: http : //jsfiddle.net/c9XYS/1/
我认为索引方法可能就是您要寻找的...
首先,您应该使用jQuery添加事件处理程序。 我将operator
的类添加到示例中的每个选择中,以执行此操作。 其次,可以在最接近的tr
元素上使用:last-child
选择器来确定它是否是表中的最后一个。 尝试这个:
$('.operator').change(function () {
if ($(this).closest('tr').is(':last-child')) {
alert('last');
//AddConditionalSearchRow(this);
}
});
您要在最后一个选择为值== -1时添加新行。
function AddConditionalSearchRow() {
var lastSelectValue = $('#tbdConditionalSearch select:last').val();
if (lastSelectValue != -1) {
// add your new row here
}
}
顺便说一句,您有两个具有相同名称的ID(id =“ trSearchRow”),使用类,ID是唯一的。
if ($(this).parent().parent().index() == $('#tbdConditionalSearch > tr').length - 1) {
}
顺便说一句,将相同的ID放在所有行上不是一个好主意。 改用一个类。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.