javascript中如何获得TABLE中某一行指定列的值,并触发一个事件,修改该行另外一列的值?

这个TAB是可以批量处理,可以随意新增一行或删除一行,主要代码如下:
<table id="1">
<tr >
<td nowrap="true">删除</td>
<td nowrap="true">产品</td>
<td nowrap="true">折扣</td>
<td nowrap="true">优惠价</td>
<td nowrap="true">数量</td>
<td nowrap="true">总金额</td>
<td nowrap="true">备注</td>
</tr>
<tr type="data">
<td nowrap="true"><span><input type="text" name="PRODID" value="" nullable="0" itemdesc="产品" />
</td>
<td nowrap="true"><span><input type="text" name="DISCOUNT" value="" nullable="0" itemdesc="折扣" />
</td>
<td nowrap="true"><span><input type="text" name="PRICE" value="" nullable="0" itemdesc="优惠价" />
</td>
<td nowrap="true"><span><input type="text" name="COUNT" value="" itemdesc="数量" onchange=getTotalPrice(this)/></span>
</td>
<td nowrap="true"><span><input type="text" name="TOTALPRICE" value="" itemdesc="总金额"/>
</td>
</tr>
</table>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td><input id="1" class="button" type="button" value="增加" onclick="。。。。">
</td>
<tr>
</table>
我现在想做的是,在每一行修改数量COUNT的时候,触发一个onchange的事件(见上面代码),这个事件可以根据当前COUNT的值和PRICE的值,计算得到TOTALPRICE的值,并付给改行的TOTALPRICE。
请问这个onchange事件的js该怎么写?
先给15分,如果比较满意,将追加30分
一楼的回答太繁琐
二楼的回答不可行(我当前页面不仅这一个table,还有其他table,其他table里也有input标签)
跪求javascript高手,帮帮忙!!!!!!

<input type="text" name="COUNT" value="" itemdesc="数量" onchange=getTotalPrice(this)/>

注意到您的count为text,不太适合使用onchange来触发,这会带来问题。
比如:你的原数量为20,当你想修改为15时,你会:
1、删除20 值变为“”,onchange触发
2、输入1 值变为 1, onchange触发
3、输入5 值变为 15, onchange触发

这样会触发三次,不能满足你触发一次的要求。
应该用onblur来触发。

分析你的业务,你需要计算当前行的,这样可以使用DOM的API来实现
<table border=1>
<tr>
<td>
<input type="text" value="12" onblur="getTotalPrice(this)">
</td>
<td><input type="text" value="13" onblur="getTotalPrice(this)"></td>
<td>
<input type="text" value="25">
</td>
</tr>
<tr>
<td>
<input type="text" value="1" onblur="getTotalPrice(this)">
</td>
<td><input type="text" value="2" onblur="getTotalPrice(this)"></td>
<td>
<input type="text" value="3">
</td>
</tr>

</table>

<script type="text/javascript">
function getTotalPrice(obj){
var c1 = obj.parentNode.parentNode.childNodes[0].childNodes[0].value;
var c2 = obj.parentNode.parentNode.childNodes[1].childNodes[0].value;
obj.parentNode.parentNode.childNodes[2].childNodes[0].value = parseInt(c1) * parseInt(c2);
}
</script>

修改前面两个栏,都会自动修改第三栏

相信合你意思,加分吧
//var items = document.getElementsByTagName("input");
<!-- 楼上牛人:1、指定下标?2、onkeydown -->

//楼主,这还繁?那加分吧,加分定制一个给你
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-08-25
<table id="1">
<tr >
<td nowrap="true">删除</td>
<td nowrap="true">产品</td>
<td nowrap="true">折扣</td>
<td nowrap="true">优惠价</td>
<td nowrap="true">数量</td>
<td nowrap="true">总金额</td>
<td nowrap="true">备注</td>
</tr>
<tr type="data">
<td nowrap="true"><span><input type="text" name="PRODID" value="" nullable="0" itemdesc="产品" />
</td>
<td nowrap="true"><span><input type="text" name="DISCOUNT" value="" nullable="0" itemdesc="折扣" />
</td>
<td nowrap="true"><span><input type="text" name="PRICE" value="" nullable="0" itemdesc="优惠价" onkeydown="getTotalPrice()" />
</td>
<td nowrap="true"><span><input type="text" name="COUNT" value="" itemdesc="数量" onkeydown="getTotalPrice()"/></span>
</td>
<td nowrap="true"><span><input type="text" name="TOTALPRICE" value="" itemdesc="总金额"/>
</td>
</tr>
</table>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td><input id="1" class="button" type="button" value="增加" onclick="。。。。">
</td>
<tr>
</table>
<script type="text/javascript">
function getTotalPrice() {
var items = document.getElementsByTagName("input");
if (items[2].value != "" && items[3].value != "") {
items[4].value = items[2].value * items[3].value;

}
}
</script>
<!--楼上让人汗颜-->

javascript中如何获得TABLE中某一行指定列的值,并触发一个事件,修改...
1、删除20 值变为“”,onchange触发 2、输入1 值变为 1, onchange触发 3、输入5 值变为 15, onchange触发 这样会触发三次,不能满足你触发一次的要求。应该用onblur来触发。分析你的业务,你需要计算当前行的,这样可以使用DOM的API来实现 <table border=1> <tr> <td> <input type="...

怎么用JavaScript获取table某行数据
表格的第一行为thead中的th 剩下的数据放到tbody中 最后那一行添加的放到tfoot中 对tbody下面的所有tr绑定一个点击事件 事件中获取这个tr下的所有td,就可以获取这行的数据了 大概代码如下:var trs =document.getElementById("tbodyId").getElementsByTagName("tr");for(int i=0;i<=trs.length;i...

点击表格内一行,jquery获得此行第一个的input的value
('table tr').bind('click',function(var val=$(this).find('input').first().val();));

HTML表格如何选定一个行, javascript里面,如何如何获取一个表格的选定...
var line_num = document.getElementById("line_num").value;alert('上次点击的是第'+line_num+'行');} <\/script> <\/head> <body> <table border="1"> <tr id="1" onclick="setLineNum(this);"> <td >第1行<\/td> <\/tr> <tr id="2" onclick="setLineNum(this);"> <td ...

用jquery 得到选择table 某一行的数据、?
<table> <tr><td>行1列1<\/td><td>行1列2<\/td><td>行1列3<\/td><\/tr> <tr><td>行2列1<\/td><td>行2列2<\/td><td>行2列3<\/td><\/tr> <\/table> 来个点击的 ("table tr").click(function(){ var $this = $(this);\/\/$this就是这个行,你点哪行,哪行就有反应。})...

js如何获取表格中某一行的单元格数
javascript提供了获取表格中某一行单元格数的代码,参考如下:document.getElementById('first').cells.length \/\/ 获取id为first的行的单元格数目实例演示如下:创建Html元素 <div class="box"><span>实例演示:获取表格第一行的单元格数量<\/span><br><div class="content"> <table> <tr i...

用JS如何获得table中checkbox所在的行列值?弄了一个上午了好捉急!_百 ...
你可以使用 JavaScript 中自带的 rowIndex 和 cellIndex 来获取行和列的键值 (从0开始)点击 checkbox,获取 parentNode (也就是 td),td.cellIndex 就是所在列的键值 点击 checkbox,获取 parentNode.parentNode (也就是 tr),tr.rowIndex 就是所在行的键值 <script type="text\/javascript">\/\/ 点击...

怎样用jquery获取table的每一行的某一列,并且改变他的值
行列从0开始计算 jquery获取一个td,一行代码搞定 ('#'+tableID).find('tr:eq('+row+')').find('td:eq('+col+')');你的代码 都没怎么用到jquery呀!!!<head> <script type="text\/javascript" src="https:\/\/code.jquery.com\/jquery-3.3.1.min.js"><\/script><script type="text...

JQuery怎么获取动态table的某行某列的值
不过我修改了部份源码试了一个方法,LZ 你就看看呗 var shtml = '';for (var i = 1; i < 3; i++) { var item = 'testing';shtml += '<tr name="result" id="tr[' + i + ']">';shtml += '<td id="td1" height="25" align="left" valign="middle"> ' + item....

jquery 怎样获得table里某列的值
css的选择器 nth-child(N) 用于匹配属于其父元素的第 N 个子元素,因此获取table的某列可用如下核心代码 ("table tr").find("td:nth-child(n)"); \/\/ 获取table所有行第一列实例演示:点击按钮获取第一列中含有字符1的行标 创建Html元素 <div class="box"><span>点击按钮获取第一列中含有...

相似回答