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实现的一个include函数
Jul 21 Javascript
学习ExtJS(二) Button常用方法
Oct 07 Javascript
Extjs 几个方法的讨论
Jan 28 Javascript
js获取url参数代码实例分享(JS操作URL)
Dec 13 Javascript
JS实现简单的图书馆享元模式实例
Jun 30 Javascript
JS与jQuery遍历Table所有单元格内容的方法
Dec 07 Javascript
JavaScript之DOM_动力节点Java学院整理
Jul 03 Javascript
详解node如何让一个端口同时支持https与http
Jul 04 Javascript
js和jQuery以及easyui实现对下拉框的指定赋值方法
Jan 23 jQuery
使用puppeteer爬取网站并抓出404无效链接
Dec 20 Javascript
layui使用label标签的方法
Sep 14 Javascript
详解关闭令人抓狂的ESlint 语法检测配置方法
Oct 28 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
[原创]PHP中通过ADODB库实现调用Access数据库之修正版本
2006/12/31 PHP
php中使用临时表查询数据的一个例子
2013/02/03 PHP
PHP中unset,array_splice删除数组中元素的区别
2014/07/28 PHP
自写的利用PDO对mysql数据库增删改查操作类
2018/02/19 PHP
jQuery在vs2008及js文件中的无智能提示的解决方法
2010/12/30 Javascript
jquery.artwl.thickbox.js  一个非常简单好用的jQuery弹出层插件
2012/03/01 Javascript
jQuery bxCarousel实现图片滚动切换效果示例代码
2013/05/15 Javascript
js在指定位置增加节点函数insertBefore()用法实例
2015/01/12 Javascript
JavaScript动态数量的文件上传控件
2016/11/18 Javascript
根据Bootstrap Paginator改写的js分页插件
2016/12/25 Javascript
图片上传之FileAPI与NodeJs
2017/01/24 NodeJs
基于JQuery的购物车添加删除以及结算功能示例
2017/03/08 Javascript
使用veloticy-ui生成文字动画效果
2018/02/08 Javascript
Vue 中axios配置实例详解
2018/07/27 Javascript
详解Require.js与Sea.js的区别
2018/08/05 Javascript
使用JavaScript实现node.js中的path.join方法
2018/08/12 Javascript
[02:43]DOTA2英雄基础教程 半人马战行者
2014/01/13 DOTA
ssh批量登录并执行命令的python实现代码
2012/05/25 Python
python中使用smtplib和email模块发送邮件实例
2014/04/22 Python
python读取视频流提取视频帧的两种方法
2020/10/22 Python
使用Python的Django和layim实现即时通讯的方法
2018/05/25 Python
使用tensorflow实现线性回归
2018/09/08 Python
使用python从三个角度解决josephus问题的方法
2020/03/27 Python
利用Python自动化操作AutoCAD的实现
2020/04/01 Python
解析Tensorflow之MNIST的使用
2020/06/30 Python
python定义类的简单用法
2020/07/24 Python
uniapp+Html5端实现PC端适配
2020/07/15 HTML / CSS
详解HTML5中CSS外观属性
2020/09/10 HTML / CSS
美国最大的珠宝商之一:Littman Jewelers
2016/11/13 全球购物
英国现代绅士品牌:Hackett
2017/12/17 全球购物
班组长工作职责
2013/12/25 职场文书
教师节宣传方案
2014/05/23 职场文书
服务承诺书怎么写
2014/05/24 职场文书
教师个人教学反思
2016/02/23 职场文书
导游词之西湖雷峰塔
2019/09/18 职场文书
mysql字段为NULL索引是否会失效实例详解
2022/05/30 MySQL