jQuery parent()方法取tr的index() 取不到,新手求解!

羽異 2017-08-22 09:16:22
在做删除一行的操作:
var $trIndex = $(elem).parent().parent().index(); //此方法取不到值
var trIndex = elem.parentNode.parentNode.rowIndex //这个方法就可以;求解
JS代码如下:
function delTr(elem){
/* var $trIndex = $(elem).parent().parent().index(); */
var trIndex = elem.parentNode.parentNode.rowIndex;
$("#fsoIsTbl tr").eq(trIndex).remove();
}

JSP代码如下:
<logic:notEmpty name="fsoInfoSourcesList">
<logic:iterate id="fsoIsList" name="fsoInfoSourcesList" indexId="fsoIsIndex" >
<tr style="text-align: center; height: 30px;">
<td><bean:write name="fsoIsList" property="fbNumber"/></td>
<td><bean:write name="fsoIsList" property="fbColor"/></td>
<td><bean:write name="fsoIsList" property="proNumber"/></td>
<td><bean:write name="fsoIsList" property="proColor"/></td>
<td><bean:write name="fsoIsList" property="fbConsumption"/></td>
<td><bean:write name="fsoIsList" property="proFbType"/></td>
<td><bean:write name="fsoIsList" property="fiQuantity"/></td>
<td><input type="number" style="width:50px;" onblur="proCountBlur('${fsoIsList.fbConsumption}',this);" /></td>
<td><input type="number" style="width:70px;" step="0.1" required /></td>
<td>
<bean:define id="fiLocationStr" name="fsoIsList" property="fiLocation" type="java.lang.String"/>
<% request.setAttribute("filArray", fiLocationStr.split(",")); %>
<logic:notEmpty name="filArray" scope="request">
<bean:size id="filArrayLength" name="filArray" />
<logic:greaterThan value="1" name="filArrayLength">
<html:select property="fsoLocation">
<html:option value="0">请选择</html:option>
<logic:iterate id="filArr" name="filArray" scope="request">
<html:option value="${filArr}">${filArr}</html:option>
</logic:iterate>
</html:select>
</logic:greaterThan>
<logic:lessEqual value="1" name="filArrayLength">
<bean:write name="fsoIsList" property="fiLocation"/>
</logic:lessEqual>
</logic:notEmpty>
</td>
<td><input type="button" onclick="delTr(this);" value="删除" /></td>
</tr>
</logic:iterate>
</logic:notEmpty>
...全文
562 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
羽異 2017-08-22
  • 打赏
  • 举报
回复
引用 2 楼 showbo 的回复:

    function delTr(elem) {
        $(elem).closest('tr').remove();//这样就行了,还eq干嘛??

        //rowIndex是相对于table来计算下标的,index是相对于所处同一个父元素下来计算,如果你的循环中的tr在一个tbody里面,而表头行在另外一个tbody里面计算出来的index和rowIndex不一样
        console.log( $(elem).parent().parent().index())
        console.log(elem.parentNode.parentNode.rowIndex)
       // $("#fsoIsTbl tr").eq(trIndex).remove();
    }
推荐学习资料 jquery全年日期选择器日历插件 jQuery仿excel表格单元格合并插件
刚开始学jQuery,方法还没学完。刚去看了这个方法:closest(),学习到了!
羽異 2017-08-22
  • 打赏
  • 举报
回复
引用 1 楼 hongmei85 的回复:

			function delTr(elem){
var trIndex = $(elem).parent().parent().index();
$("#fsoIsTbl tr").eq(trIndex).remove();
}
			
可以说说是为什么吗?
  • 打赏
  • 举报
回复

    function delTr(elem) {
        $(elem).closest('tr').remove();//这样就行了,还eq干嘛??

        //rowIndex是相对于table来计算下标的,index是相对于所处同一个父元素下来计算,如果你的循环中的tr在一个tbody里面,而表头行在另外一个tbody里面计算出来的index和rowIndex不一样
        console.log( $(elem).parent().parent().index())
        console.log(elem.parentNode.parentNode.rowIndex)
       // $("#fsoIsTbl tr").eq(trIndex).remove();
    }


推荐学习资料
jquery全年日期选择器日历插件
jQuery仿excel表格单元格合并插件
hongmei85 2017-08-22
  • 打赏
  • 举报
回复

			function delTr(elem){
var trIndex = $(elem).parent().parent().index();
$("#fsoIsTbl tr").eq(trIndex).remove();
}
			

87,996

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧