Jquery获取表格当前行中其他列的值和其他列中input输入框中的值。
Jquery获取表格当前行中其他列的值和其他列中input输入框中的值。
表格效果:
表格代码(为了精简,有些样式代码减掉了):
<table>
<tr>
<td class="title1">车桩编号</td>
<td class="title1">所在车点</td>
<td class="title1">存放车辆</td>
<td class="title1">操作</td>
</tr>
<c:forEach items="${pileList }" var="pile">
<tr id="pile">
<td align="center">
${pile.pileCode }
<input type="hidden" name="pileId" value="${pile.pileId }" class="pid" >
</td>
<td align="center">${pile.station.stationName</td>
<td align="center">${pile.bicycle.bicycleCode }</td>
<td align="center">
<input type="button" value="租车">
</td>
</tr>
</c:forEach>
</table>
表格第一列的每行除了显示车桩编号外,后面其实都跟有一个隐藏的输入框,这个隐藏的输入框用以存储车桩的id,毕竟我们操作数据库需要根据主键来,主键一般不会显示出来,所以我们将输入框隐藏
通过点击“租车”按钮时我们获取当前行第一列后面所跟的隐藏输入框中存储的id
Jquery方法:
因为这里数据是用c:forEach遍历出来的,有多条数据,不能用id选择器,所以可以给“租车”按钮一个类选择器,像下面一样
<input type="button" value="租车" class="rentCar"">
然后Jquery这样写:
$(function(){
//给按钮绑定点击事件
$(".rentCar").on("click",function(){
//获取当前行隐藏输入框中的值
var pileId=$(this).closest("tr").find("input[class='pid']").val();
alert(pileId);
//或者下面这样写也一样可以
pileId=$(this).parents("tr").find(".pid").val();
alert(pileId);
})
})
如果习惯了直接在按钮后跟onclick()的话,像下面这样写:
<input type="button" value="租车" onclick="rentCar(this)">
Jquery的话大同小异,这么写:
function rentCar(Obj){
//获取当前行隐藏输入框中的值
var pileId=$(Obj).closest("tr").find("input[class='pid']").val();
alert(pileId);
//或者这么写也一样的
pileId=$(Obj).parents("tr").find(".pid").val();
alert(pileId);
}