javascript实现切换td中的值


Posted in Javascript onDecember 05, 2014

之前面试前端时,遇到一道面试题,当时没有思绪所以没答出来,今天整理了一下和大家一起分享下:

原题是:使用对象方法创建一个2x2的表格(table),要求第二行第二列单元格中拥有一个按钮,当点击此按钮时,第一行第一列的值与第二行第一列的值互换,见下图

javascript实现切换td中的值

创建表格

javascript实现切换td中的值

点击效果

本人愚钝,如果您有更好的方法不妨告诉在下,本人琢磨了半天终于有了些结果:

1.创建表格的对象

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>Document</title>

    <style>

    table td{text-align: center;}

    </style>

</head>

<body>

<h2>使用对象创建表格</h2>

  <script>

  var table={

    value1:"value1",

    value2:"value2",

    row:2,

    cell:2,

    create:function(){

        //创建表格

        var table=document.createElement("table");

        table.border=1;

        table.width="500";  

        //创建按钮  

        var button=document.createElement("button"); 

        button.innerHTML="切换";

        button.name="qiehuan";

        button.setAttribute("onclick","qiehuan()");

        //创建行

        for(var i=0;i<this.row;i++){

            table.insertRow();

        }

        //创建列

        for(var i=0;i<this.cell;i++){

            table.rows[i].insertCell();

            table.rows[i].insertCell();

        } 

      //将表格添加到body

      document.body.appendChild(table);

      var table=document.getElementsByTagName("table")[0];

      var row1=table.rows[0];

      var row2=table.rows[1];

      table.rows[1].cells[1].appendChild(button);

      var a=row1.cells[0].innerHTML=this.value1;

      var b=row2.cells[0].innerHTML=this.value2;

    }

  }

  table.create();

</script>

</body>

</html>

创建表格方法实现的效果为:

javascript实现切换td中的值

点击切换代码:

function qiehuan(){

      //获取table

      var table=document.getElementsByTagName("table")[0];

    //获取tr

      var row1=table.rows[0];

      var row2=table.rows[1];

    //交换内容

    //创建新元素来存储数据

    var a=row1.cells[0].innerHTML;

    var b=row2.cells[0].innerHTML;

    row1.cells[0].innerHTML=b;

    row2.cells[0].innerHTML=a;
  }

点击切换按钮效果为:

javascript实现切换td中的值

拓展延伸:

1.我想实现点击id/name/sex来更换排序:

javascript实现切换td中的值

原始

javascript实现切换td中的值

效果

code:

<!DOCTYPE html>

<html lang="en">

<head>

  <meta charset="UTF-8">

  <title>Document</title>

</head>

<body>

    <table border="1" width="500">

    <th colspan="3">点击替换内容</th>

    <tr>

      <td id="id">id</td>

      <td id="name">name</td>

      <td><span id="sex">sex</span></td>

    </tr>

    <tr>

      <td>1</td>

      <td>a</td>

      <td>男</td>      

    </tr>

    <tr>

      <td>2</td>

      <td>b</td>

      <td>女</td>      

    </tr>   

  </table>

  <script>

    //绑定效果---ie下失效

    document.getElementById('id').addEventListener('click', f_switch, false);

    document.getElementById('name').addEventListener('click', f_switch, false);

    document.getElementById('sex').addEventListener('click', f_switch, false);

    function f_switch(){

      //获取table

      var table=document.getElementsByTagName("table")[0];

      //获取行元素

      var row1=table.rows[2];

      var row2=table.rows[3];

      //方法一

      //创建新元素来存储数据

      var newrow=document.createElement("tr");

      var newhtml=newrow.innerHTML=row2.innerHTML;

      var newrow2=document.createElement("tr");

      var newhtml2=newrow2.innerHTML=row1.innerHTML;

      //替换

      row1.innerHTML=newhtml;

      row2.innerHTML=newhtml2;

     //方法二

     //不明白....下面一句就能实现

     //table.appendChild(row1);

    }

  </script>

  <br>

 </body>

</html>
Javascript 相关文章推荐
[原创]提供复制本站内容时出现,该文章转自脚本之家等字样的js代码
Mar 27 Javascript
CodeMirror2 IE7/IE8 下面未知运行时错误的解决方法
Mar 29 Javascript
js螺旋动画效果的具体实例
Nov 15 Javascript
jQuery打印指定区域Html页面并自动分页
Jul 04 Javascript
微信小程序 Nginx环境配置详细介绍
Feb 14 Javascript
JavaScript原生数组Array常用方法
Apr 06 Javascript
vue中引入第三方字体文件的方法示例
Dec 17 Javascript
JS浅拷贝和深拷贝原理与实现方法分析
Feb 28 Javascript
vue.js表单验证插件(vee-validate)的使用教程详解
May 23 Javascript
Vue组件通信中非父子组件传值知识点总结
Dec 05 Javascript
微信小程序使用自定义组件导航实现当前页面高亮
Jan 02 Javascript
小程序角标的添加及绑定购物车数量进行实时更新的实现代码
Dec 07 Javascript
使用Javascript简单实现图片无缝滚动
Dec 05 #Javascript
深入分析js的冒泡事件
Dec 05 #Javascript
Javascript解析URL方法详解
Dec 05 #Javascript
jQuery不兼容input的change事件问题解决过程
Dec 05 #Javascript
Node.js中安全调用系统命令的方法(避免注入安全漏洞)
Dec 05 #Javascript
jQuery前端框架easyui使用Dialog时bug处理
Dec 05 #Javascript
Javascript实现获取窗口的大小和位置代码分享
Dec 04 #Javascript
You might like
session在php5.3中的变化 session_is_registered() is deprecated in
2013/11/12 PHP
5种PHP创建数组的实例代码分享
2014/01/17 PHP
简介JavaScript中substring()方法的使用
2015/06/06 Javascript
javascript中SetInterval与setTimeout的定时器用法
2015/08/24 Javascript
利用Angularjs和原生JS分别实现动态效果的输入框
2016/09/01 Javascript
Bootstrap页面标题Page Header的实现方法
2017/03/22 Javascript
Angular.JS中指令ng-if、ng-show/ng-hide和ng-switch的使用教程
2017/05/07 Javascript
JavaScript实现创建自定义对象的常用方式总结
2018/07/09 Javascript
echarts设置图例颜色和地图底色的方法实例
2018/08/01 Javascript
node crawler如何添加promise支持
2020/02/01 Javascript
[47:39]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 LGD vs OPTIC
2018/03/31 DOTA
[01:21]2018DOTA2亚洲邀请赛4.5采访 打DOTA2也能有女朋友?
2018/04/06 DOTA
python网络编程之文件下载实例分析
2015/05/20 Python
python清除指定目录内所有文件中script的方法
2015/06/30 Python
python并发编程之线程实例解析
2017/12/27 Python
Python中正则表达式的用法总结
2019/02/22 Python
python opencv对图像进行旋转且不裁剪图片的实现方法
2019/07/09 Python
python2.7实现复制大量文件及文件夹资料
2019/08/31 Python
opencv+python实现均值滤波
2020/02/19 Python
python 已知三条边求三角形的角度案例
2020/04/12 Python
keras实现调用自己训练的模型,并去掉全连接层
2020/06/09 Python
python 装饰器的使用示例
2020/10/10 Python
德国低价购买灯具和家具网站:Style-home.de
2016/11/25 全球购物
澳大利亚优惠网站:Deals.com.au
2019/07/02 全球购物
英国排名第一的停车场运营商:NCP
2019/08/26 全球购物
巴西网上药店:Drogaria Araujo
2021/01/06 全球购物
优纳科技软件测试面试题
2012/05/15 面试题
专营店会计助理岗位职责
2013/11/29 职场文书
婚前财产公证书
2014/04/10 职场文书
体现团队精神的口号
2014/06/06 职场文书
2014年化工厂工作总结
2014/11/25 职场文书
七一慰问简报
2015/07/20 职场文书
MySQL配置主从服务器(一主多从)
2021/08/07 MySQL
Logback 使用TurboFilter实现日志级别等内容的动态修改操作
2021/08/30 Java/Android
PostGIS的安装与入门使用指南
2022/01/18 PostgreSQL
python神经网络 使用Keras构建RNN训练
2022/05/04 Python