• 前端面试题--js切换td中的值


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

    原题是:使用对象方法创建一个2x2的表格(table),要求第二行第二列单元格中拥有一个按钮,当点击此按钮时,第一行第一列的值与第二行第一列的值互换,见下图

    创建表格

    点击效果

    本人愚钝,如果您有更好的方法不妨告诉在下,本人琢磨了半天终于有了些结果:

    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>

    创建表格方法实现的效果为:

     

     点击切换代码:

    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;
    
      }

    点击切换按钮效果为:

    猛搓见效果

    拓展延伸:

    1.我想实现点击id/name/sex来更换排序:

    原始

    效果

     

    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>

    可以猛搓这看效果

  • 相关阅读:
    网页中加入Flash的代码
    AJAX示例
    图片过滤效果
    ASP.NET性能优化
    什么是AJAX
    动态获取enum的值并且添到List中
    VSTO为Excel快捷菜单添加项
    OpenXML for office SDK 2.5 Download url.
    WebClient
    C#监控本地目录文件变化
  • 原文地址:https://www.cnblogs.com/leeten/p/3843668.html
Copyright © 2020-2023  润新知