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 相关文章推荐
找到一点可怜的关于dojo资料,谢谢作者!
Dec 06 Javascript
阻止JavaScript事件冒泡传递(cancelBubble 、stopPropagation)
May 08 Javascript
jquery 学习之二 属性(类)
Nov 25 Javascript
jQuery.event兼容各浏览器的event详细解析
Dec 18 Javascript
jquery中交替点击事件的实现代码
Feb 14 Javascript
jquery.form.js实现将form提交转为ajax方式提交的方法
Apr 07 Javascript
jQuery实现向下滑出的二级菜单效果实例
Aug 22 Javascript
JQuery的attr 与 val区别
Jun 12 Javascript
给easyui datebox扩展一个清空的实例
Nov 09 Javascript
js 监控iframe URL的变化实例代码
Jul 12 Javascript
Vue ElementUI实现:限制输入框只能输入正整数的问题
Jul 31 Javascript
html实现随机点名器的示例代码
Apr 02 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
如何使用微信公众平台开发模式实现多客服
2016/01/06 PHP
php中array_fill函数的实例用法
2021/03/02 PHP
jquery控制listbox中项的移动并排序
2009/11/12 Javascript
JavaScript 数组循环引起的思考
2010/01/01 Javascript
HTML Dom与Css控制方法
2010/10/25 Javascript
jquery异步请求实例代码
2011/06/21 Javascript
Node.js实战 建立简单的Web服务器
2012/03/08 Javascript
JavaScript判断文件上传类型的方法
2014/09/02 Javascript
Javascript中拼接大量字符串的方法
2015/02/05 Javascript
jquery 将当前时间转换成yyyymmdd格式的实现方法
2016/06/01 Javascript
js生成随机数(指定范围)的实例代码
2016/07/10 Javascript
AngularJS入门教程之 XMLHttpRequest实例讲解
2016/07/27 Javascript
jquery自动补齐功能插件flexselect用法示例
2016/08/06 Javascript
无限循环轮播图之运动框架(原生JS实现)
2017/10/01 Javascript
开发Vue树形组件的示例代码
2017/12/21 Javascript
记录一次开发微信网页分享的步骤
2019/05/07 Javascript
Vue搭建后台系统需要注意的问题
2019/11/08 Javascript
浅谈javascript如何获取文件后缀名
2020/08/07 Javascript
全面解读Python Web开发框架Django
2014/06/30 Python
Python中dictionary items()系列函数的用法实例
2014/08/21 Python
python获取指定字符串中重复模式最高的字符串方法
2018/06/29 Python
Python多项式回归的实现方法
2019/03/11 Python
使用python+whoosh实现全文检索
2019/12/09 Python
Python打包模块wheel的使用方法与将python包发布到PyPI的方法详解
2020/02/12 Python
python实现读取类别频数数据画水平条形图案例
2020/04/24 Python
Keras - GPU ID 和显存占用设定步骤
2020/06/22 Python
解决PyCharm不在run输出运行结果而不是再Console里输出的问题
2020/09/21 Python
Python Pandas数据分析工具用法实例
2020/11/05 Python
仿CSDN Blog返回页面顶部功能实现原理及代码
2013/06/30 HTML / CSS
英国领先的体验日提供商:Buyagift
2019/04/19 全球购物
印尼在线旅游门户网站:NusaTrip
2019/11/01 全球购物
奥巴马竞选演讲稿
2014/05/15 职场文书
2015年机关党建工作总结
2015/05/22 职场文书
运动会新闻稿
2015/07/17 职场文书
写给医护人员的一封感谢信
2019/09/16 职场文书
Redis持久化与主从复制的实践
2021/04/27 Redis