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 09 Javascript
js对象内部访问this修饰的成员函数示例
Apr 27 Javascript
JS实现弹性漂浮效果的广告代码
Sep 02 Javascript
JSON字符串转换JSONObject和JSONArray的方法
Jun 03 Javascript
分享JS代码实现鼠标放在输入框上输入框和图片同时更换样式
Sep 01 Javascript
Vue监听数据对象变化源码
Mar 09 Javascript
Bootstrap.css与layDate日期选择样式起冲突的解决办法
Apr 07 Javascript
JavaScript纯色二维码变成彩色二维码
Jul 23 Javascript
Angular js 实现添加用户、修改密码、敏感字、下拉菜单的综合操作方法
Oct 24 Javascript
webpack 插件html-webpack-plugin的具体使用
Apr 09 Javascript
Node.js实现一个HTTP服务器的方法示例
May 13 Javascript
解决 window.onload 被覆盖的问题方法
Jan 14 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
采用ThinkPHP中F方法实现快速缓存实例
2014/06/13 PHP
php5.4以下版本json不支持不转义内容中文的解决方法
2015/01/13 PHP
如何在HTML 中嵌入 PHP 代码
2015/05/13 PHP
关于PHP转换超过2038年日期出错的问题解决
2017/06/28 PHP
thinkPHP微信分享接口JSSDK用法实例
2017/07/07 PHP
PHP调用API接口实现天气查询功能的示例
2017/09/21 PHP
可兼容php5与php7的cURL文件上传功能实例分析
2018/05/11 PHP
javascript arguments 传递给函数的隐含参数
2009/08/21 Javascript
Google排名中的10个最著名的 JavaScript库
2010/04/27 Javascript
JQuery中对服务器控件 DropdownList, RadioButtonList, CheckboxList的操作总结
2011/06/28 Javascript
innerHTML与jquery里的html()区别介绍
2012/10/12 Javascript
Js日期选择自动填充到输入框(界面漂亮兼容火狐)
2013/08/02 Javascript
javascript获得网页窗口实际大小的示例代码
2013/09/21 Javascript
js+css实现回到顶部按钮(back to top)
2016/03/02 Javascript
vue.js实现仿原生ios时间选择组件实例代码
2016/12/21 Javascript
bootstarp modal框居中显示的实现代码
2017/02/18 Javascript
js实现网页的两个input标签内的数值加减(示例代码)
2017/08/15 Javascript
vue使用 better-scroll的参数和方法详解
2018/01/25 Javascript
微信小程序实现左右联动的实战记录
2018/07/05 Javascript
jQuery中each和js中forEach的区别分析
2019/02/27 jQuery
vue+element项目中过滤输入框特殊字符小结
2019/08/07 Javascript
Vue 一键清空表单的实现方法
2020/02/07 Javascript
Linux下为不同版本python安装第三方库
2016/08/31 Python
python实现rsa加密实例详解
2017/07/19 Python
详解Python中的动态属性和特性
2018/04/07 Python
python gensim使用word2vec词向量处理中文语料的方法
2019/07/05 Python
python爬虫中抓取指数的实例讲解
2020/12/01 Python
发现世界上最好的珠宝设计师:JewelStreet
2017/12/17 全球购物
美国农场鲜花速递:The Bouqs
2018/07/13 全球购物
REISS美国官网:伦敦最受欢迎的时尚品牌
2019/08/16 全球购物
英语专业推荐信
2013/11/16 职场文书
甲方资料员岗位职责
2013/12/13 职场文书
机械设计及其自动化求职推荐信
2014/02/17 职场文书
大学生优秀班干部事迹材料
2014/05/26 职场文书
教学工作总结范文5篇
2019/08/19 职场文书
Mysql数据库手动及定时备份步骤
2021/11/07 MySQL