js遍历table下面 所有td,并设置个别td的值 高分 求大神
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js遍历table下面 所有td,并设置个别td的值 高分 求大神相关的知识,希望对你有一定的参考价值。
<table id="mytable">
<tr calss="test">
<td id="d1">4</td>
<td id="d2">5</td>
<td id="d3"></td>
</tr>
<tr calss="test">
<td id="d1">1115</td>
<td id="d2">11116</td>
<td id="d3"></td>
</tr>
</table>
如上table已知table的id、tr的class、td的id,一个table里有多个相同的tr,每个tr的class和id一样 但是值不一样
求大神 遍历table后设置td的id为d3的值为d1+d2
跪求大神
这个很简单啊
html :
<tbody>
<tr>
<td>1</td>
<td>2</td>
<td></td>
</tr>
</tbody>
</table>
这个是上面的,需求要第三个td的值要等于前两个td的值相加
下面是俩个版本的js代码
js:
//jq的实现很简单
var table = $('#table');//找到这个table
var trs = table.find('tbody tr');//找到这个表格下面的tbody下面的所有的tr
trs.each(function()
var tr = $(this);//针对每个tr做处理
var tds = tr.find('td');//拿到这个tr下面所有的td
if(tds.length === 3)//只处理下面有3个td的情况
var num_1 = +tds.eq(0).text();//第一个td的值,前面的+号可以将他转换成数字用来计算
var num_2 = +tds.eq(0).text();//第二个td的值
tds.eq(2).text(num_1 + num_2);//第三个td的值等于他前俩个td的值相加
);
//原生js的,ie8+支持
var table = document.querySelector('#table');
var trs = tbody.querySelectorAll('tbody > tr');
for(var i=0,tr; tr = trs[i]; i++)
var tds = tr.querySelectorAll('td');
if(tds.length === 3)
var n1 = +tds[0].innerText;
var n2 = +tds[1].innerText;
tds[2].innerText = n1 + n2;
追问
不行额
追答那我就没招了,你自己跑不起来,我也没法子帮你
参考技术A <!DOCTYPE html><html lang="en">
<head>
<meta charset="UTF-8">
<title>test jquery</title>
<script src="jquery.js"></script>
<script type="text/javascript">
function add(a,b)
return parseInt(a,10) + parseInt(b,10);
$(function()
$(".test").toArray().forEach(function(x)
$("#d3", $(x)).text(add($("#d1",$(x)).text(), $("#d2",$(x)).text()));
);
);
</script>
</head>
<body>
<table id="mytable">
<tr class="test">
<td id="d1">4</td>
<td id="d2">5</td>
<td id="d3"></td>
</tr>
<tr class="test">
<td id="d1">1115</td>
<td id="d2">11116</td>
<td id="d3"></td>
</tr>
</table>
</body>
</html>
你原来的class单词拼写错了. 这里用到了jquery,自己看下. 测试是成功的
追问不行额
参考技术B用原生js太麻烦了,我用了jquery 写了个出来(ps ID是唯一的虽然可以用,但是不建议id重复)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Language" content="zh-CN" />
<meta name="Keywords" content="" />
<meta name="Description" content="" />
<link rel="stylesheet" href="style/.css" type="text/css" />
<script src="http://libs.baidu.com/jquery/1.9.0/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function()
$("#mytable tr").each(function(k)
$(this).find("#d3").text(Number($(this).find("#d1").text())+Number($(this).find("#d2").text()));
);
);
</script>
</head>
<body>
<table id="mytable">
<tr calss="test">
<td id="d1">4</td>
<td id="d2">5</td>
<td id="d3"></td>
</tr>
<tr calss="test">
<td id="d1">1115</td>
<td id="d2">11116</td>
<td id="d3"></td>
</tr>
</table>
</body>
</html>追问
不行额
追答怎么会不行,直接复制就行了,当然jquery 百度提供的,首先你的电脑得能上网
看了一下几个人回答的问题都是可以的,楼主只是不想给分
<html>
<head>
<meta charset="UTF-8" />
<title>main.html</title>
<style type="text/css">
</style>
<script type="text/javascript">
window.onload = function ()
var table = document.getElementById ('mytable');
var rows = table.rows;
for ( var i = 0; i < rows.length; i++)
if (rows[i].className == 'test')
var txt = document.createTextNode ();
txt.nodeValue = Number (rows[i].cells[0].firstChild.nodeValue)
+ Number (rows[i].cells[1].firstChild.nodeValue);
rows[i].cells[2].appendChild (txt);
</script>
</head>
<body>
<table id="mytable">
<tr class="test">
<td id="d1">4</td>
<td id="d2">5</td>
<td id="d3"></td>
</tr>
<tr class="test">
<td id="d1">1115</td>
<td id="d2">11116</td>
<td id="d3"></td>
</tr>
</table>
</body>
</html>追问
不行额
追答你的tr的class都写错了
calss="test"
【遍历table后设置td的id为d3的值为d1+d2】?(di+d2 什么意思,怎么个加法?)
才疏学浅,表示不太明白,但是帮你顶下。
Jquery遍历table并拿到每个单元格里的值
$(‘#table_id tr‘).each(function(i){
alert(i);
if(i!=0){
//td内的文本
var v0 = $(this).children(‘td‘).eq(0).text();
//td内是一个input输入框
var v1 = $(this).children(‘td‘).eq(1).text();
//td内是一个radio
var v2 = $(this).children(‘td‘).eq(2).find(‘input[name="xx"]:checked‘).val();
alert(v0);
alert(v1);
alert(v2);
}
})
以上是关于js遍历table下面 所有td,并设置个别td的值 高分 求大神的主要内容,如果未能解决你的问题,请参考以下文章