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 相关文章推荐
jQuery实现切换页面布局使用介绍
Oct 09 Javascript
jquery获取焦点和失去焦点事件代码
Apr 21 Javascript
jquery结合CSS使用validate实现漂亮的验证
Jan 29 Javascript
$.extend 的一个小问题
Jun 18 Javascript
jquery合并表格中相同文本的相邻单元格
Jul 17 Javascript
Jquery实现顶部弹出框特效
Aug 08 Javascript
JS JSOP跨域请求实例详解
Jul 04 Javascript
Vue表单验证插件的制作过程
Apr 01 Javascript
详解各版本React路由的跳转的方法
May 10 Javascript
vue router 源码概览案例分析
Oct 09 Javascript
Vue项目中使用WebUploader实现文件上传的方法
Jul 21 Javascript
基于Layui自定义模块的使用方法详解
Sep 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
PHP安全性漫谈
2012/06/28 PHP
php中运用http调用的GET和POST方法示例
2014/09/29 PHP
php使用Imagick生成图片的方法
2015/07/31 PHP
php pthreads多线程的安装与使用
2016/01/19 PHP
php表单文件iframe异步上传实例讲解
2017/07/26 PHP
PHP从尾到头打印链表实例讲解
2018/09/27 PHP
json-lib出现There is a cycle in the hierarchy解决办法
2010/02/24 Javascript
Jquery弹出层插件ThickBox的使用方法
2014/12/09 Javascript
js实现格式化金额,字符,时间的方法
2015/02/26 Javascript
jquery中JSON的解析方式
2015/03/16 Javascript
jQuery删除一个元素后淡出效果展示删除过程的方法
2015/03/18 Javascript
javascript实现的右下角弹窗实例
2015/04/24 Javascript
JavaScript语言精粹经典实例(整理篇)
2016/06/07 Javascript
jQuery Validate设置onkeyup验证的实例代码
2016/12/09 Javascript
JS调用Android、Ios原生控件
2017/01/06 Javascript
Angular.JS内置服务$http对数据库的增删改使用教程
2017/05/07 Javascript
如何将 jQuery 从你的 Bootstrap 项目中移除(取而代之使用Vue.js)
2017/07/17 jQuery
JavaScript创建对象的常用方式总结
2018/08/10 Javascript
vue+elementUI组件table实现前端分页功能
2020/11/15 Javascript
python实现探测socket和web服务示例
2014/03/28 Python
用Python制作简单的朴素基数估计器的教程
2015/04/01 Python
Python备份目录及目录下的全部内容的实现方法
2016/06/12 Python
python flask实现分页效果
2017/06/27 Python
Python中的CSV文件使用&quot;with&quot;语句的方式详解
2018/10/16 Python
Python装饰器使用你可能不知道的几种姿势
2019/10/25 Python
python如何随机生成高强度密码
2020/08/19 Python
python 基于DDT实现数据驱动测试
2021/02/18 Python
如何保障Web服务器安全
2014/05/05 面试题
linux面试题参考答案(8)
2015/08/11 面试题
你在项目中用到了xml技术的哪些方面?如何实现的?
2014/01/26 面试题
大课间活动实施方案
2014/03/06 职场文书
机械专业技术员求职信
2014/06/14 职场文书
校运动会广播稿300字
2014/10/07 职场文书
检讨书范文300字
2015/01/28 职场文书
音乐教师求职信范文
2015/03/20 职场文书
Python语法学习之进程的创建与常用方法详解
2022/04/08 Python