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类的封装及实现代码
Dec 02 Javascript
js获取浏览器基本信息大全
Nov 27 Javascript
9款2014最热门jQuery实用特效推荐
Dec 07 Javascript
纯js模拟div层弹性运动的方法
Jul 27 Javascript
js+css实现的圆角边框TAB选项卡滑动门代码分享(2款)
Aug 26 Javascript
jquery实现表格隔行换色效果
Nov 19 Javascript
JS实现的跨浏览器解析XML文件实例
Jun 21 Javascript
Javascript动画效果(2)
Oct 11 Javascript
详解JavaScript的闭包、IIFE、apply、函数与对象
Dec 21 Javascript
vue组件jsx语法的具体使用
May 21 Javascript
使用RxJS更优雅地进行定时请求详析
Jun 02 Javascript
elementUI 动态生成几行几列的方法示例
Jul 11 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代码
2008/09/10 PHP
php mysql Errcode: 28 终极解决方法
2009/07/01 PHP
zend framework多模块多布局配置
2011/02/26 PHP
一个非常完美的读写ini格式的PHP配置类分享
2015/02/12 PHP
PHP实现自动识别原编码并对字符串进行编码转换的方法
2016/07/13 PHP
php 常用的系统函数
2017/02/07 PHP
PHP实现广度优先搜索算法(BFS,Broad First Search)详解
2017/09/16 PHP
JQuery上传插件Uploadify使用详解及错误处理
2010/04/27 Javascript
Jquery性能优化详解
2014/05/15 Javascript
jQuery中last()方法用法实例
2015/01/06 Javascript
js的window.showModalDialog及window.open用法实例分析
2015/01/29 Javascript
jQuery对象初始化的传参方式
2015/02/26 Javascript
基于javascript实现单选及多选的向右和向左移动实例
2015/07/25 Javascript
【经典源码收藏】基于jQuery的项目常见函数封装集合
2016/06/07 Javascript
AngularJS中的Promise详细介绍及实例代码
2016/12/13 Javascript
详解cordova打包成webapp的方法
2017/10/18 Javascript
关于react-router/react-router-dom v4 history不能访问问题的解决
2018/01/08 Javascript
JS实现鼠标拖拽盒子移动及右键点击盒子消失效果示例
2019/01/29 Javascript
[47:06]DOTA2上海特级锦标赛主赛事日 - 4 败者组第五轮 MVP.Phx VS EG第一局
2016/03/05 DOTA
[01:06:59]完美世界DOTA2联赛PWL S2 Magma vs FTD 第一场 11.29
2020/12/02 DOTA
http请求 request失败自动重新尝试代码示例
2018/01/25 Python
Python基于OpenCV库Adaboost实现人脸识别功能详解
2018/08/25 Python
python得到一个excel的全部sheet标签值方法
2018/12/10 Python
详解用python生成随机数的几种方法
2019/08/04 Python
详解Python3 pickle模块用法
2019/09/16 Python
matplotlib 三维图表绘制方法简介
2020/09/20 Python
携程旅行网:中国领先的在线旅行服务公司
2017/02/17 全球购物
美国用餐电影院:Alamo Drafthouse Cinema
2020/01/23 全球购物
网络工程系信息安全技术专业大学生求职信
2013/10/22 职场文书
大学生收银员求职信分享
2014/01/02 职场文书
让生命充满爱演讲稿
2014/05/10 职场文书
大学生志愿者活动总结
2014/06/27 职场文书
毕业论文答辩开场白和结束语
2015/05/27 职场文书
关于感恩的歌曲整理(8首)
2019/08/14 职场文书
mysql 索引的数据结构为什么要采用B+树
2022/04/26 MySQL