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 相关文章推荐
Array.prototype.slice 使用扩展
Jun 09 Javascript
JavaScript 小型打飞机游戏实现原理说明
Oct 28 Javascript
JavaScript高级程序设计(第3版)学习笔记6 初识js对象
Oct 11 Javascript
js播放wav文件(源码)
Apr 22 Javascript
JavaScript中的apply和call函数详解
Jul 20 Javascript
JavaScript使用Replace进行字符串替换的方法
Apr 14 Javascript
Wireshark基本介绍和学习TCP三次握手
Aug 15 Javascript
jQuery File Upload文件上传插件使用详解
Dec 06 Javascript
JS简单验证上传文件类型的方法
Apr 17 Javascript
JavaScript实现读取与输出XML文件数据的方法示例
Jun 05 Javascript
Jquery实现获取子元素的方法分析
Aug 24 jQuery
Layui给switch添加响应事件的例子
Sep 03 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
CI框架中$this-&gt;load-&gt;library()用法分析
2016/05/18 PHP
PHP实现二维数组根据key进行排序的方法
2016/12/30 PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
2017/11/16 PHP
实例介绍PHP中zip_open()函数用法
2019/02/15 PHP
如何在Laravel之外使用illuminate组件详解
2020/09/20 PHP
VBScript版代码高亮
2006/06/26 Javascript
javascript 日期常用的方法
2009/11/11 Javascript
利用浏览器全屏api实现js全屏
2014/01/16 Javascript
jQuery模拟点击A标记示例参考
2014/04/17 Javascript
javascript中String对象的slice()方法分析
2014/12/20 Javascript
jQuery实现新消息闪烁标题提示的方法
2015/03/11 Javascript
使用jQuery获取data-的自定义属性
2015/11/10 Javascript
谈谈对offsetleft兼容性的理解
2015/11/11 Javascript
JS折半插入排序算法实例
2015/12/02 Javascript
jQuery.form插件的使用及跨域异步上传文件
2016/04/27 Javascript
form+iframe解决跨域上传文件的方法
2016/11/18 Javascript
TypeScript中的方法重载详解
2019/04/12 Javascript
jQuery位置选择器用法实例分析
2019/06/28 jQuery
jQuery模仿ToDoList实现简单的待办事项列表
2019/12/30 jQuery
微信小程序实现可拖动悬浮图标(包括按钮角标的实现)
2020/12/29 Javascript
python通过colorama模块在控制台输出彩色文字的方法
2015/03/19 Python
详解Python中的装饰器、闭包和functools的教程
2015/04/02 Python
Python中动态创建类实例的方法
2017/03/24 Python
详解重置Django migration的常见方式
2019/02/15 Python
python解释器安装教程的方法步骤
2020/07/02 Python
JackJones官方旗舰店:杰克琼斯男装
2018/03/27 全球购物
Baby Tulai澳大利亚:美国婴儿背带品牌
2018/10/15 全球购物
英国顶级水晶珠宝零售商之一:Tresor Paris
2019/04/27 全球购物
竞聘上岗演讲稿
2014/05/16 职场文书
2014年纪检监察工作总结
2014/11/11 职场文书
爱国教育主题班会
2015/08/14 职场文书
怎样评估创业计划书是否有可行性?
2019/08/07 职场文书
2019下半年英语教师的教学工作计划(3篇)
2019/09/25 职场文书
创业计划书之冷饮店
2019/09/27 职场文书
使用python如何删除同一文件夹下相似的图片
2021/05/07 Python
python和Appium的移动端多设备自动化测试框架
2022/04/26 Python