之前面试前端时,遇到一道面试题,当时没有思绪所以没答出来,今天整理了一下和大家一起分享下:

原题是:使用对象方法创建一个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,切换td中的值

免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
评论“javascript实现切换td中的值”
暂无“javascript实现切换td中的值”评论...

《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线

暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。

艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。

《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。