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 相关文章推荐
利用javascript解决图片缩放及其优化的代码
May 23 Javascript
avalonjs实现仿微博的图片拖动特效
May 06 Javascript
JavaScript实现DIV层拖动及动态增加新层的方法
May 12 Javascript
js实现根据身份证号自动生成出生日期
Dec 15 Javascript
javascript中不易分清的slice,splice和split三个函数
Mar 29 Javascript
实例详解jQuery的无new构建
Aug 02 Javascript
jQuery实现html table行Tr的复制、删除、计算功能
Jul 10 jQuery
利用jqgrid实现上移下移单元格功能
Nov 07 Javascript
JavaScript实现电灯开关小案例
Mar 30 Javascript
antd table按表格里的日期去排序操作
Nov 17 Javascript
如何在 Vue 表单中处理图片
Jan 26 Vue.js
vue3.0封装轮播图组件的步骤
Mar 04 Vue.js
使用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
PHP开发入门教程之面向对象
2006/12/05 PHP
使用jquery给input和textarea设定ie中的focus
2008/05/29 Javascript
Ext.get() 和 Ext.query()组合使用实现最灵活的取元素方式
2011/09/26 Javascript
jquery之超简单的div显示和隐藏特效demo(分享)
2013/07/09 Javascript
js加载之使用DOM方法动态加载Javascript文件
2013/11/08 Javascript
在javascript中实现函数数组的方法
2013/12/25 Javascript
深入理解JavaScript系列(47):对象创建模式(上篇)
2015/03/04 Javascript
JavaScript Window浏览器对象模型方法与属性汇总
2015/04/20 Javascript
使用Javascript写的2048小游戏
2015/11/25 Javascript
jQuery实现的图片轮播效果完整示例
2016/09/12 Javascript
老生常谈JavaScript中的this关键字
2016/10/01 Javascript
Javascript动画效果(1)
2016/10/11 Javascript
微信小程序 触控事件详细介绍
2016/10/17 Javascript
easyui form validate总是返回false的原因及解决方法
2016/11/07 Javascript
JS实现的相册图片左右滚动完整实例
2016/11/23 Javascript
javascript基于定时器实现进度条功能实例
2017/10/13 Javascript
详解webpack babel的配置
2018/01/09 Javascript
js实现幻灯片轮播图
2020/08/14 Javascript
Node.js文本文件BOM头的去除方法
2020/11/22 Javascript
[00:32]DOTA2上海特级锦标赛 Ehome战队宣传片
2016/03/03 DOTA
python daemon守护进程实现
2016/08/27 Python
快速了解Python中的装饰器
2018/01/11 Python
django admin 后台实现三级联动的示例代码
2018/06/22 Python
详解Python字典小结
2018/10/20 Python
使用Python的OpenCV模块识别滑动验证码的缺口(推荐)
2019/05/10 Python
python处理“
2019/06/10 Python
python 实现查询Neo4j多节点的多层关系
2019/12/23 Python
Python2和Python3中@abstractmethod使用方法
2020/02/04 Python
Python unittest基本使用方法代码实例
2020/06/29 Python
Python3爬虫中Selenium的用法详解
2020/07/10 Python
Python实现自动装机功能案例分析
2020/10/22 Python
使用phonegap克隆和删除联系人的实现方法
2017/03/31 HTML / CSS
雷朋巴西官方商店:Ray-Ban Brasil
2020/07/21 全球购物
给酒店员工的表扬信
2014/01/11 职场文书
教师教学评估方案
2014/05/09 职场文书
邀请函样本
2015/02/02 职场文书