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中Iframe之间传值的方法
Mar 11 Javascript
JQuery异步获取返回值中文乱码的解决方法
Jan 29 Javascript
JavaScript实现的双向跨域插件分享
Jan 31 Javascript
js插件dropload上拉下滑加载数据实例解析
Jul 27 Javascript
简单谈谈JS数组中的indexOf方法
Oct 13 Javascript
vue动态生成dom并且自动绑定事件
Apr 19 Javascript
Node.js服务器开启Gzip压缩教程
Aug 11 Javascript
vue: WebStorm设置快速编译运行的方法
Oct 18 Javascript
微信小程序class封装http代码实例
Aug 24 Javascript
nuxt 每个页面head标签内容设置方式
Nov 05 Javascript
js实现上传图片到服务器
Apr 11 Javascript
Vue Element-ui表单校验规则实现
Jul 09 Vue.js
使用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分页类的代码
2011/05/18 PHP
php中使用接口实现工厂设计模式的代码
2012/06/17 PHP
基于PHP字符串的比较函数strcmp()与strcasecmp()的使用详解
2013/05/15 PHP
php开启与关闭错误提示适用于没有修改php.ini的权限
2014/10/16 PHP
php实现异步数据调用的方法
2015/12/24 PHP
PHP中strnatcmp()函数“自然排序算法”进行字符串比较用法分析(对比strcmp函数)
2016/01/07 PHP
PHP的PDO常用类库实例分析
2016/04/07 PHP
PHP生成随机字符串实例代码(字母+数字)
2019/09/11 PHP
JQuery 文本框使用小结
2010/05/22 Javascript
中国地区三级联动下拉菜单效果分析
2012/11/15 Javascript
js使用数组判断提交数据是否存在相同数据
2013/11/27 Javascript
Jquery原生态实现表格header头随滚动条滚动而滚动
2014/03/18 Javascript
JavaScript实现非常简单实用的下拉菜单效果
2015/08/27 Javascript
js实现点击向下展开的下拉菜单效果代码
2015/09/01 Javascript
Jquery遍历select option和添加移除option的实现方法
2016/08/26 Javascript
JavaScript简单拖拽效果(1)
2017/05/17 Javascript
Bootstrap datepicker日期选择器插件使用详解
2017/07/26 Javascript
D3.js实现拓扑图的示例代码
2018/06/30 Javascript
vue实现表单录入小案例
2019/09/27 Javascript
[44:04]OG vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
python生成日历实例解析
2014/08/21 Python
python使用socket进行简单网络连接的方法
2015/04/29 Python
Python脚本暴力破解栅栏密码
2015/10/19 Python
浅析Python中signal包的使用
2015/11/13 Python
python 数据清洗之数据合并、转换、过滤、排序
2017/02/12 Python
在双python下设置python3为默认的方法
2018/10/31 Python
python与C、C++混编的四种方式(小结)
2019/07/15 Python
Python图片处理模块PIL操作方法(pillow)
2020/04/07 Python
python def 定义函数,调用函数方式
2020/06/02 Python
玩转CSS3色彩
2010/01/16 HTML / CSS
班组长安全职责
2014/01/05 职场文书
网球场地租赁协议范本
2014/10/07 职场文书
刘公岛导游词
2015/02/05 职场文书
幼儿园教师节活动总结
2015/03/23 职场文书
运动会100米加油稿
2015/07/21 职场文书
MongoDB使用profile分析慢查询的步骤
2021/04/30 MongoDB