【前端基础】统一修改table中某一列的值

一、需求

需求比较简单,就是先修改第一列中age下面的input中的值,然后点击age这个submit按钮,会将这一列中所有的值都修改称第一列中age对应的值,如上图所示;

二、实现

1、针对这个需求,我第一反应就是先获取第一列age这列对应的value,然后用这个值给其他行的这一列的value进行赋值;所以我的代码实现如下:

<!DOCTYPE html>
<html>
<head>
    <title>test</title>
</head>
<body>
    <script type="text/javascript">

         //根据第一行的字段值,统一修改其他行中的值
        function allmodifyage(id){
            var inputs = document.getElementById(id).getElementsByTagName("input");
            var modify_value = 0;
            for(var i = 0; i < inputs.length; i++){
                if(inputs[i].type == "text" ){
                    var checkRow = inputs[i];
                    var tr = checkRow.parentNode.parentNode;
                    var tds = tr.cells;
                    if( i == 1){
                        //获取第一行中age的值,如果使用input这种方式的话,有可能第一行对应的i不是1,而是看上面有多少input元素,保险情况可以直接获取表的第一行的这一列的值
                        modify_value = tds[2].getElementsByTagName("input")[0].value;
                    }
                    //给其他行的这列的元素进行赋值
                    tds[2].getElementsByTagName("input")[0].value = modify_value;
                }
            };
        };

    </script>

    <form>
        <table border="1" id = "user">
            <thead>
                <tr>
                    <th>id</th>
                    <th>name</th>
                    <th> <input type="submit" name="age" value="age" onclick="allmodifyage(‘user‘)"></th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td>1</td>
                    <td>zy</td>
                    <td><input type="text" name="age" value="43"></td>
                </tr>
                <tr>
                    <td>2</td>
                    <td>junjun</td>
                    <td><input type="text" name="age" value="43"></td>
                </tr>
            </tbody>
        </table>

    </form>

</body>
</html>

2、引发的问题:上面的代码能正确修改每行指定列的值,但发现一个问题,就是在修改后,立刻又变为默认值;

  原因:经分析,这是由于onclik方法在调用成功后,会自动刷新页面,所以该列有变为原来的值;

  解决方案:在调用成功后,return一个false,这样onclick收到的为false就会当调用这个函数失败,不会自动刷新页面;

<!DOCTYPE html>
<html>
<head>
    <title>test</title>
</head>
<body>
    <script type="text/javascript">

         //根据第一行的字段值,统一修改其他行中的值
        function allmodifyage(id){
            var inputs = document.getElementById(id).getElementsByTagName("input");
            var modify_value = 0;
            for(var i = 0; i < inputs.length; i++){
                if(inputs[i].type == "text" ){
                    var checkRow = inputs[i];
                    var tr = checkRow.parentNode.parentNode;
                    var tds = tr.cells;
                    if( i == 1){
                        //获取第一行中age的值,如果使用input这种方式的话,有可能第一行对应的i不是1,而是看上面有多少input元素,保险情况可以直接获取表的第一行的这一列的值
                        modify_value = tds[2].getElementsByTagName("input")[0].value;
                    }
                    //给其他行的这列的元素进行赋值
                    tds[2].getElementsByTagName("input")[0].value = modify_value;
                }
            };
            return false;
        };

    </script>

    <form>
        <table border="1" id = "user">
            <thead>
                <tr>
                    <th>id</th>
                    <th>name</th>
                    <th> <input type="submit" name="age" value="age" onclick="return allmodifyage(‘user‘)"></th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td>1</td>
                    <td>zy</td>
                    <td><input type="text" name="age" value="43"></td>
                </tr>
                <tr>
                    <td>2</td>
                    <td>junjun</td>
                    <td><input type="text" name="age" value="43"></td>
                </tr>
            </tbody>
        </table>

    </form>

</body>
</html>
时间: 2024-08-24 00:49:20

【前端基础】统一修改table中某一列的值的相关文章

JavaScript实现获取table中某一列的值

JavaScript实现获取table中某一列的值 1.实现源码 <!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> &

JavaScript获取table中某一列的值的方法

1.实现源码 <!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> <meta http-equiv="C

Java通过反射机制修改类中的私有属性的值

首先创建一个类包含一个私有属性: class PrivateField{ private String username = "Jason"; } 通过反射机制修改username的值: //创建一个类的对象 PrivateField privateField = new PrivateField(); //获取对象的Class Class<?> classType = privateField.getClass(); //获取指定名字的私有域 Field field =

对数据表中某2列的值对调

原文:对数据表中某2列的值对调 如标题所言,需要把2列的数据进行对调,列1的值存入列2,把列2的值存储列1中去. 如何实现,2种方法: 第1种,对列名进行修改,把name1改为name2,把name2改为name1即可: sp_rename 'Q3.name1',temp_name1,'column' GO sp_rename 'Q3.name2',temp_name2,'column' GO sp_rename 'Q3.temp_name1',name2,'column' GO sp_rena

HTML JS获取到table中所有的input的值 传递到前端

1.获取table对象 2.行循环.列循环然后遍历每一个格子里面的input值 3.用连接符连接 4.放置到form的隐藏域里面. 5.传递到后台. js代码:注意:1.input必须跟[0]否则无法取出值  2.在JS的双引号里面不能在用""改成''而且{}在引号里也会被识别报错.将字符串传回后台处理即可 function GetInfoFromTable() { var tableInfo = ""; var tableObj = document.getEle

TABLE中动态设置poplist的值跟着当前行的某些列动态变化

核心方法 OAAdvancedTableBean table = (OAAdvancedTableBean)webBean.findChildRecursive("TimeEntryTbl"); OAMessageChoiceBean elePoplist = (OAMessageChoiceBean)table.findChildRecursive("ElementSelect"); elePoplist.setListVOBoundContainerColumn

批量修改datafram中某一列

如要对df中列名为“values”的值做修改,大于等于50改为1,小于50改为0,可用apply函数来实现: def fun(x): if x >= 50: return 1 else: return 0 df['values'] = df['values'].apply(lambda x: fun(x)) 原文地址:https://www.cnblogs.com/sxinfo/p/11827598.html

easyUI在可编辑的datagrid中计算两列的值

在这个教程中你将学习如何包含一个运算的列在可编辑的datagrid中,一个运算列通常包含一些运算值从一个或多个其他列. 查看Demo 首先,创建一个可编辑的datagrid,这就是我们创建的一些可编辑列,'listprice','amount' 和'unitcost' 列定义为numberbox 编辑类型,运算列是 'unitcost'字段, 将是 listprice 乘以 amount列的结果. <table id="tt" style="width:600px;he

组策略 &nbsp; &nbsp; 之 &nbsp; 统一修改域中计算机的本地管理员账户和密码

目的:不能通过本地管理员账户登陆计算机 一.修改管理员名称 建立一个GPO,在计算机策略---windows设置----安全设置-----本地策略-----安全选项------找到"账户:重命名系统管理员账户"------修改为想要的名称. 二.修改管理员密码 在GPO中找到,计算机策略---windows设置----脚本(启动/关机)---选择"启动"----添加相应的脚本文件. 有两个注意事项: 脚本文件可以用批处理等格式,例如修改密码就可以用个记事本写入: N