下面的JS已经指定了test 为什么,如果这个页面再加一个TABLE就出错了呢<table width="100%" border="0" cellpadding="1" cellspacing="1" id="test" >
<script type="text/javascript">function setSum(obj){
var sumTD = obj.parentNode.parentNode.getElementsByTagName("td")[6];
if(!/^\d*$/.test(obj.value)){
if(isNaN(parseInt(obj.value))){
obj.value = "";
sumTD.innerHTML = "";
}else{
obj.value = parseInt(obj.value);
}
return;
}
var price = parseFloat(obj.parentNode.parentNode.getElementsByTagName("input")[2].value),
count = parseInt(obj.value),
sum = price * count; if (isNaN(sum)){
sumTD.innerHTML = 0;
}else{
sumTD.innerHTML = sum;
}
}function setAllSum(){
var trs = document.getElementsByTagName("tr"),
allSumTD = trs[trs.length-2].getElementsByTagName("td")[6],
sum = 0; for(var i=1;i<trs.length-2;i++){
var curTD = trs[i].getElementsByTagName("td")[6];
if(!isNaN(curTD.innerHTML)){
sum += parseFloat(curTD.innerHTML);
}
}
if (isNaN(sum)){
allSumTD.innerHTML = "";
}else{
allSumTD.innerHTML = sum;
}
}window.onload = function(){
var trs = document.getElementsByTagName("tr");
for(var i=1;i<trs.length-2;i++){
setSum(trs[i].getElementsByTagName("input")[3]);
setAllSum();
trs[i].getElementsByTagName("input")[3].onkeyup = function(oEvent){
setSum(this);
setAllSum();
}
}
}
</script>
<script type="text/javascript">function setSum(obj){
var sumTD = obj.parentNode.parentNode.getElementsByTagName("td")[6];
if(!/^\d*$/.test(obj.value)){
if(isNaN(parseInt(obj.value))){
obj.value = "";
sumTD.innerHTML = "";
}else{
obj.value = parseInt(obj.value);
}
return;
}
var price = parseFloat(obj.parentNode.parentNode.getElementsByTagName("input")[2].value),
count = parseInt(obj.value),
sum = price * count; if (isNaN(sum)){
sumTD.innerHTML = 0;
}else{
sumTD.innerHTML = sum;
}
}function setAllSum(){
var trs = document.getElementsByTagName("tr"),
allSumTD = trs[trs.length-2].getElementsByTagName("td")[6],
sum = 0; for(var i=1;i<trs.length-2;i++){
var curTD = trs[i].getElementsByTagName("td")[6];
if(!isNaN(curTD.innerHTML)){
sum += parseFloat(curTD.innerHTML);
}
}
if (isNaN(sum)){
allSumTD.innerHTML = "";
}else{
allSumTD.innerHTML = sum;
}
}window.onload = function(){
var trs = document.getElementsByTagName("tr");
for(var i=1;i<trs.length-2;i++){
setSum(trs[i].getElementsByTagName("input")[3]);
setAllSum();
trs[i].getElementsByTagName("input")[3].onkeyup = function(oEvent){
setSum(this);
setAllSum();
}
}
}
</script>
建议换成
var trs = document.getElementById("test").rows;