js或者jq根据tr的id删除tr

qq_32380629 2016-01-25 09:38:40
页面代码:
<table>
<tr>
<td>
<div id="imgBox">
<tr id="trId"><!-- 删除这个tr -->
<td>
<div>
<a id="aId">删除</a>
</div>
</td>
</tr>
</div>
</td>
</tr>
</table>

js代码:
//这段js是别的地方调用的东西上传附件过后在删除附件
//上面从第二个tr开始都是js动态生成的,而且删除附件是还要带参数
//所以不能html上面写onclick事件,只能在js里面动态添加onclick事件
//如果我上传三个文件,分三次上传,只能删除第三个文件,第一个和第二个都不能删除
function doUp(aId,trId){
aId.onclick=function(){
removeRow(trId);
}
}

function removeRow(trId){
document.getElementById(trId).removeNode();
}
...全文
1678 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
tony4geek 2016-01-25
  • 打赏
  • 举报
回复
你是添加一个 ,就立马把附件 上传到服务器上面? 这种方法也可以,不过你删除的时候也要执行删除服务器上的附件。 其实你也可以在前台不立马删除, 因为前台客户端来来回回删除添加动作和频繁, 最好最后一次性所有的附件都上传。
shixitong 2016-01-25
  • 打赏
  • 举报
回复
引用 3 楼 qq_32380629 的回复:
[quote=引用 1 楼 shixitong 的回复:] 应该根据上传后的附件Id(或者其它标识)去删除具体的附件,而不是根据前台的tr的id(这个只是表象的在前台删除tr)
我有传路径和文件名到后台去删除文件,在removeRow里面[/quote] 把代码贴全点 对应动态的生成的html(table那块)代码贴出来,然后把你怎么传值到removeRow里删除的代码也贴出来 照你现象判断应该是动态生成的html代码,那块里面的值有问题
qq_32380629 2016-01-25
  • 打赏
  • 举报
回复
引用 6 楼 yyhlichao 的回复:
你写的是ID,上传三次那不是有三个相同ID的tr吗,ID就冲突了?要不就用class 吧,一次性就全部删除了,或者都加一个name=“。。。” 根据name来删除所有的tr就行了啊
我用了全局变量,每次加一,所以id不会重复
优游湖 2016-01-25
  • 打赏
  • 举报
回复
引用 8 楼 qq_32380629 的回复:
[quote=引用 6 楼 yyhlichao 的回复:] 你写的是ID,上传三次那不是有三个相同ID的tr吗,ID就冲突了?要不就用class 吧,一次性就全部删除了,或者都加一个name=“。。。” 根据name来删除所有的tr就行了啊
我用了全局变量,每次加一,所以id不会重复[/quote] 把你的代码全部贴出来看一下吧,只要获取到的对象对了的,不可能删除不掉
qq_32380629 2016-01-25
  • 打赏
  • 举报
回复
引用 5 楼 rui888 的回复:
什么叫 服务器上的附件 ???
上传到服务器上的
qq_32380629 2016-01-25
  • 打赏
  • 举报
回复
问题已经解决了,我用了一个隐藏字段,跟4楼的差不多,当我删除的时候在隐藏字段里面取路径和系统生成的文件名,再到后台删除
优游湖 2016-01-25
  • 打赏
  • 举报
回复
你写的是ID,上传三次那不是有三个相同ID的tr吗,ID就冲突了?要不就用class 吧,一次性就全部删除了,或者都加一个name=“。。。” 根据name来删除所有的tr就行了啊
tony4geek 2016-01-25
  • 打赏
  • 举报
回复
什么叫 服务器上的附件 ???
qq_32380629 2016-01-25
  • 打赏
  • 举报
回复
引用 2 楼 rui888 的回复:
<!DOCTYPE html>
<html>
<head>
 
<script>
function deleteTr(e){
e.parentElement.parentElement.parentElement.remove();
}
</script>
</head>
<body>
<table>
   <tr>
      <td>
         <div id="imgBox">
            <tr id="trId"><!-- 删除这个tr -->
               <td>
                  <div>
                      <a id="aId" onClick='deleteTr(this)'>删除1</a>
                  </div>
               </td>
            </tr>
            <tr id="trId"><!-- 删除这个tr -->
               <td>
                  <div>
                      <a id="aId2" onClick='deleteTr(this)' >删除2</a>
                  </div>
               </td>
            </tr>
         </div>
      </td>
   </tr>
</table>
</body>
</html>
这样只能删除页面上的,不能服务器上的附件
qq_32380629 2016-01-25
  • 打赏
  • 举报
回复
引用 1 楼 shixitong 的回复:
应该根据上传后的附件Id(或者其它标识)去删除具体的附件,而不是根据前台的tr的id(这个只是表象的在前台删除tr)
我有传路径和文件名到后台去删除文件,在removeRow里面
tony4geek 2016-01-25
  • 打赏
  • 举报
回复
<!DOCTYPE html>
<html>
<head>
 
<script>
function deleteTr(e){
e.parentElement.parentElement.parentElement.remove();
}
</script>
</head>
<body>
<table>
   <tr>
      <td>
         <div id="imgBox">
            <tr id="trId"><!-- 删除这个tr -->
               <td>
                  <div>
                      <a id="aId" onClick='deleteTr(this)'>删除1</a>
                  </div>
               </td>
            </tr>
            <tr id="trId"><!-- 删除这个tr -->
               <td>
                  <div>
                      <a id="aId2" onClick='deleteTr(this)' >删除2</a>
                  </div>
               </td>
            </tr>
         </div>
      </td>
   </tr>
</table>
</body>
</html>
shixitong 2016-01-25
  • 打赏
  • 举报
回复
应该根据上传后的附件Id(或者其它标识)去删除具体的附件,而不是根据前台的tr的id(这个只是表象的在前台删除tr)

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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