是这两句有问题 var pri = obj.parentElement.previousSibling.childNodes[0].value; var tot = obj.parentElement.nextSibling.childNodes[0]; IE下这个可以,但是firefox下不认识parentElement以及previousSibling等 firefox下必须这样 var pri = obj.parentNode.previousElementSibling.childNodes[0].value; var tot = obj.parentNode.nextElementSibling.childNodes[0];哎,浏览器的兼容,搞的人都无语
alltotal不在没关系,只要实现这个效果就ok
<tr>
<td width="1" align="center">
<input type="text" id="saleprice" value="370" size="3" />
</td>
<td align="center">
<input type="text" id="count" onChange="sum(this)" value="0" size="3" />
</td>
<td align="center">
<input type="text" disabled="disabled" id="total" value="0" size="4" />
</td>
</tr>
</table>
<SCRIPT LANGUAGE="JavaScript">
<!--
function sum(obj){
var saleprice = document.getElementById('saleprice');
if(!isNaN(saleprice.value) && !isNaN(obj.value)){
document.getElementById('total').value = saleprice.value * obj.value;
}
}
//-->
</SCRIPT>
<td align="center"> </td>
<td align="center">count</td>
<td align="center">subtotal</td>
<td align="center"> </td>
</tr><tr><td width="1" align="center"><input name="saleprice1" type="text" id="saleprice1" value="370" size="3" /></td>
<td align="center"><input name="count" type="text" id="count1" onChange="sum(this)" value="0" size="3" /></td>
<td align="center"><input name="total" type="text" disabled="disabled" id="total" value="0" size="4" /></td>
<td align="center"> </td>
</tr>
<tr><td width="1" align="center"><input name="saleprice1" type="text" id="saleprice1" value="370" size="3" /></td>
<td align="center"><input name="count" type="text" id="count2" onChange="sum(this)" value="0" size="3" /></td>
<td align="center"><input name="total" type="text" disabled="disabled" id="total" value="0" size="4" /></td>
<td align="center"> </td>
</tr>
<tr>
<td align="center"> </td>
<td align="center"> </td>
<td align="center"> </td>
<td align="center">total:
<input name="alltotal" type="text" disabled="disabled" id="alltotal" size="10" /></td>
</tr>
</table>
<SCRIPT LANGUAGE="JavaScript">
<!--
init();
//初始化
function init(){
for (var i=0; i<document.getElementsByName("count").length; i++){
sum(document.getElementsByName("count")[i]);
}
all();
}
function sum(obj){
var pri = obj.parentElement.previousSibling.childNodes[0].value;
var tot = obj.parentElement.nextSibling.childNodes[0];
tot.value = parseFloat(pri) * parseInt(obj.value,10);
all();
}
//算总价
function all() {
var alltot = 0;
for (var i=0; i<document.getElementsByName("total").length; i++){
alltot += parseFloat(document.getElementsByName("total")[i].value);
}
document.getElementById("alltotal").value = alltot;
}
//-->
</SCRIPT>
这句有问题,firefox下这句报这个错
document.getElementById("alltotal") is null
楼主是不是少一个input里的id为alltotal啊?
是很烦啊,但是这个世界是复杂多样滴,老外用的多是FIrefox,它跑的快。
var pri = obj.parentElement.previousSibling.childNodes[0].value;
var tot = obj.parentElement.nextSibling.childNodes[0];
IE下这个可以,但是firefox下不认识parentElement以及previousSibling等
firefox下必须这样
var pri = obj.parentNode.previousElementSibling.childNodes[0].value;
var tot = obj.parentNode.nextElementSibling.childNodes[0];哎,浏览器的兼容,搞的人都无语
哥,是滴,这样firefox成功了,可IE里面好像又不行了。搞那么多浏览器,是真的无语啊,苦了大家了.
多谢诸位,尤其感谢“狗熊丫丫”帮忙!
Many THKS!~