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 相关文章推荐
Jquery之美中不足小结
Feb 16 Javascript
js实现点击图片将图片地址复制到粘贴板的方法
Feb 16 Javascript
详细解读JavaScript的跨浏览器事件处理
Aug 12 Javascript
12个非常实用的JavaScript小技巧【推荐】
May 18 Javascript
noty ? jQuery通知插件全面解析
May 18 Javascript
纯前端JavaScript实现Excel IO案例分享
Aug 26 Javascript
javascript 实现文本使用省略号替代(超出固定高度的情况)
Feb 21 Javascript
js实现二级导航功能
Mar 03 Javascript
ES6新增的math,Number方法
Aug 06 Javascript
vue项目中,main.js,App.vue,index.html的调用方法
Sep 20 Javascript
vue 项目@change多个参数传值多个事件的操作
Jan 29 Vue.js
详解CocosCreator项目结构机制
Apr 14 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
多文件上传的例子
2006/10/09 PHP
php获取远程图片并下载保存到本地的方法分析
2016/10/08 PHP
PHPExcel 修改已存在Excel的方法
2018/05/03 PHP
php屏蔽错误及提示的方法
2020/05/10 PHP
BOOM vs RR BO3 第一场2.13
2021/03/10 DOTA
关于javascript中this关键字(翻译+自我理解)
2010/10/20 Javascript
基于jQuery的模仿新浪微博时间的组件
2011/10/04 Javascript
JavaScript实现简单图片滚动附源码下载
2014/06/17 Javascript
Angular.Js之Scope作用域的学习教程
2017/04/27 Javascript
关于react-router/react-router-dom v4 history不能访问问题的解决
2018/01/08 Javascript
vue兄弟组件传递数据的实例
2018/09/06 Javascript
傻瓜式解读koa中间件处理模块koa-compose的使用
2018/10/30 Javascript
微信小程序实现多个按钮的颜色状态转换
2019/02/15 Javascript
Vue中的情侣属性$dispatch和$broadcast详解
2019/03/07 Javascript
vue实现验证用户名是否可用
2021/01/20 Vue.js
python分割文件的常用方法
2014/11/01 Python
线程和进程的区别及Python代码实例
2015/02/04 Python
Python使用自带的ConfigParser模块读写ini配置文件
2016/06/26 Python
Python实现合并两个列表的方法分析
2018/05/28 Python
python代码 FTP备份交换机配置脚本实例解析
2019/08/01 Python
python中的列表与元组的使用
2019/08/08 Python
python matplotlib库直方图绘制详解
2019/08/10 Python
python通过对字典的排序,对json字段进行排序的实例
2020/02/27 Python
python实现引用其他路径包里面的模块
2020/03/09 Python
ASOS亚洲:ASOS Asia
2018/03/04 全球购物
Kiehl’s科颜氏西班牙官方网站:源自美国的植物护肤品牌
2020/02/22 全球购物
医院护士求职自荐信格式
2013/09/21 职场文书
搞笑获奖感言
2014/01/30 职场文书
体育节口号
2014/06/19 职场文书
售后客服个人自我评价
2014/09/14 职场文书
消费者理赔投诉书
2015/07/02 职场文书
幼儿园教师教学反思
2016/03/02 职场文书
python中的plt.cm.Paired用法说明
2021/05/31 Python
浅谈@Value和@Bean的执行顺序问题
2021/06/16 Java/Android
JavaScript中isPrototypeOf函数
2021/11/07 Javascript
webpack介绍使用配置教程详解webpack介绍和使用
2022/06/25 Javascript