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 相关文章推荐
html数组字符串拼接的最快方法
Sep 16 Javascript
用jquery ajax获取网站Alexa排名的代码
Dec 12 Javascript
浅析jquery ajax异步调用方法中不能给全局变量赋值的原因及解决方法
Jan 10 Javascript
JavaScript中reduce()方法的使用详解
Jun 09 Javascript
JavaScript中Boolean对象的属性解析
Oct 21 Javascript
图解js图片轮播效果
Dec 20 Javascript
Js与Jq获取浏览器和对象值的方法
Mar 18 Javascript
Bootstrap 模态框实例插件案例分析
Dec 28 Javascript
微信小程序 动态绑定数据及动态事件处理
Mar 14 Javascript
js canvas实现适用于移动端的百分比仪表盘dashboard
Jul 18 Javascript
如何获取vue单文件自身源码路径
May 06 Javascript
ant-design-vue中的select选择器,对输入值的进行筛选操作
Oct 24 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 调用远程url的六种方法小结
2009/11/02 PHP
基于PHP的cURL快速入门教程 (小偷采集程序)
2011/06/02 PHP
php实现通过stomp协议连接ActiveMQ操作示例
2020/02/23 PHP
node.js中的fs.unlink方法使用说明
2014/12/15 Javascript
JavaScript实现广告的关闭与显示效果实例
2015/07/02 Javascript
jQuery表单验证功能实例
2015/08/28 Javascript
javascript数据类型验证方法
2015/12/31 Javascript
AngularJS 单元测试(一)详解
2016/09/21 Javascript
React-Router如何进行页面权限管理的方法
2017/12/06 Javascript
jQuery实现动态显示select下拉列表数据的方法
2018/02/05 jQuery
vue-cli 引入jQuery,Bootstrap,popper的方法
2018/09/03 jQuery
vue+django实现一对一聊天功能的实例代码
2019/07/17 Javascript
微信小程序如何获取地址
2019/12/24 Javascript
微信小程序实现吸顶效果
2020/01/08 Javascript
CKEditor扩展插件:自动排版功能autoformat插件实现方法详解
2020/02/06 Javascript
JavaScript实现密码强度实时验证
2020/03/18 Javascript
VSCode搭建Vue项目的方法
2020/04/30 Javascript
[40:56]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 Liquid vs TNC
2018/04/01 DOTA
浅析Python多线程下的变量问题
2015/04/28 Python
轻松实现python搭建微信公众平台
2016/02/16 Python
浅谈python字典多键值及重复键值的使用
2016/11/04 Python
Python实现将不规范的英文名字首字母大写
2016/11/15 Python
Scrapy框架CrawlSpiders的介绍以及使用详解
2017/11/29 Python
python网络爬虫 Scrapy中selenium用法详解
2019/09/28 Python
浅谈matplotlib 绘制梯度下降求解过程
2020/07/12 Python
HTML5中的nav标签学习笔记
2016/06/24 HTML / CSS
英国知名奢侈品包包品牌:Milli Millu
2016/12/22 全球购物
英国第一独立滑雪板商店:The Snowboard Asylum
2020/01/16 全球购物
幼儿园门卫岗位职责范本
2014/07/02 职场文书
文案策划岗位职责
2015/02/11 职场文书
公司奖励通知
2015/04/21 职场文书
房产证明范本
2015/06/19 职场文书
《巨人的花园》教学反思
2016/02/19 职场文书
幼儿园大班教学反思
2016/03/02 职场文书
MySQL系列之十五 MySQL常用配置和性能压力测试
2021/07/02 MySQL
SQLServer中exists和except用法介绍
2021/12/04 SQL Server