js综合练习

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
    <style type="text/css">
        body
        {
            height:800px;
        }
        #title
        {
            height:20%;
            width:100%;
            /*background-color:green;*/
            /*top:0px;*/

        }
        #title1
        {
            height:80%;
            background-color:green;
        }
        #title2
        {
            height:20%;
            background-color:gray;
            text-align:center;
        }
        #left
        {
            width:20%;
            height:70%;
            float:left;
            background-color:yellow;
        }
        #main
        {
            width:80%;
             height:70%;
            float:right;
            background-color:#0094ff;
        }
        #titleol
        {
            list-style:none;
            float:right;
            /*绝对定位absolut,不随屏幕一起滚动,脱离文档流
              固定定位 fixed,跟屏幕一起走始终在视野可见位置 脱离文档流
              相对定位 relative,没有脱离文档流,不随屏幕动
              static:静态,不会脱离文档流,无法使用top,left进行偏移
              z-index调整层次数值越大越在上面
                */
            position:relative;
            top:70%;
        }
        .titleli
        {
            border:1px solid blue;
            width:30px;
            height:20px;
            float:left;
            color:white;
            text-align:center;
            font-size:larger;
            cursor:pointer;
        }
        #tableid01
        {
            border:1px solid red;
            border-collapse:collapse;
            margin:0 auto;
            width:100%;
        }
            #tableid01 td
            {
                border:1px solid red;
            }

    </style>
</head>
<body>
    <div id="title">
        <div id="title1">
            <ol id="titleol">
                <li class="titleli">1</li>
                <li class="titleli">2</li>

                <li class="titleli">3</li>
                <li class="titleli">4</li>
            </ol>
        </div>
        <div id="title2"></div>
    </div>
    <div id="left"></div>
    <div id="main">

        <table id="tableid01">
            <tr>
                <td><input type="checkbox"  id="ckall"/></td>
                <td >姓名</td>
                <td>年龄</td>
                <td><a href="#" id="deleteall">全删</a></td>

            </tr>
             <tr>
                <td><input type="checkbox" class="ck01" /></td>
                <td class="updatetd">战鹰</td>
                <td>18</td>
                <td><a href="#" class="deletetr">删除</a></td>

            </tr>
             <tr>
                <td><input type="checkbox" class="ck01" /></td>
                <td class="updatetd">王丹</td>
                <td>19</td>
                <td><a href="#" class="deletetr">删除</a></td>

            </tr>
        </table>
            <input type="button" value="加行"  id="btnAdd"/>
        <input type="button" value="修改" id="btnUpdate" />
    </div>
    <div id="bottom"></div>
</body>
</html>
<script type="text/javascript">
    var liObjects = document.getElementsByClassName("titleli")
    var titleimg=document.getElementById("title1");
    var news = document.getElementById("title2");

    //对象数组,将需要的东西封装成对象,根据key来取到所在对象的属性值
    var ObjectArray=[{"key":1,"imgpath":"url(/img/1.jpg)","news":"zzz"},
    {"key":2,"imgpath":"url(/img/2.jpg)","news":"bbb"},
    {"key":3,"imgpath":"url(/img/3.jpg)","news":"aaa"},
    { "key": 4, "imgpath": "url(/img/4.jpg)", "news": "ccc" }]

    for (var i = 0; i < liObjects.length; i++) {
        liObjects[i].onclick = HeightLight;
    }

    //封装高亮方法
    function HeightLight()
    {
        for (var j = 0; j < liObjects.length; j++) {
            liObjects[j].style.backgroundColor="black";
        }
        this.style.backgroundColor="red";
        titleimg.style.backgroundImage = GetbyKey(this.innerHTML.trim()).imgpath;
        news.innerHTML=GetbyKey(this.innerHTML.trim()).news;

    }
    //封装getbykey通过对象数组的key判断点击li得到对象
    function GetbyKey(key)
    {
        for (var k = 0; k < ObjectArray.length; k++) {
            if(key==ObjectArray[k].key)
            {return ObjectArray[k];}
        }
    }

    //单击ck全选全反选
    document.getElementById("ckall").onclick = function () {
        var ckobjects = document.getElementsByClassName("ck01");
        for (var i = 0; i < ckobjects.length; i++) {
            ckobjects[i].checked = this.checked;
        }
    }
    //单删除
    var DelObjects = document.getElementsByClassName("deletetr");
    for (var i = 0; i <DelObjects.length; i++) {
        DelObjects[i].onclick = function ()
        {
            var trobject = this.parentNode.parentNode;
            trobject.parentNode.removeChild(trobject);
        }
    }
    //多选删除
    document.getElementById("deleteall").onclick = function ()
    {
        var ckobjects = document.getElementsByClassName("ck01")
        //此处需要注意,数组元素删除,需要倒序删
        for (var i = ckobjects.length-1; i >=0; i--) {
            if (ckobjects[i].checked == true)
            {
              var trobject=  ckobjects[i].parentNode.parentNode;
              trobject.parentNode.removeChild(trobject);
            }
        }
    }

    //table加行
    document.getElementById("btnAdd").onclick = function ()
    {
        var tr = document.createElement("tr");
        tr.innerHTML="<td><input type=‘checkbox‘ class=‘ck01‘ /></td> <td class=‘updatetd‘></td> <td></td> <td><a href=‘#‘ class=‘deletetr‘>删除</a></td>"

        document.getElementById("tableid01").appendChild(tr);
        for (var i = 0; i < DelObjects.length; i++) {
            DelObjects[i].onclick = function () {
                var trobject = this.parentNode.parentNode;
                trobject.parentNode.removeChild(trobject);
            }
        }
    }

    //修改
    var tdobjects = document.getElementsByClassName("updatetd");
    var selectedtd;
        for (var i = 0; i < tdobjects.length; i++) {
            tdobjects[i].onclick = function () {
                var inputtxt = document.createElement("input");
                inputtxt.value = this.innerHTML;
                this.innerHTML = "";
                this.appendChild(inputtxt);
                //得到焦点
                inputtxt.focus();
                selectedtd = this;
                //失去焦点事件
                inputtxt.onblur = function () {
                    selectedtd.innerHTML = "";
                    selectedtd.innerHTML = this.value;
                }
            }

    }

</script>
时间: 2024-10-23 10:28:17

js综合练习的相关文章

jquery.js与sea.js综合使用

jquery.js与sea.js综合使用 目录 模块定义 define id dependencies factory exports require require.async require.resolve require.load require.constructor module module.id module.dependencies module.exports module.constructorseajs.configalias jquery.js与sea.js综合使用 简介

Vue.js 综合

<!DOCTYPE HTML> <html> <head> <title>vue.js 处理用户输入</title> <script src="../vue.js"></script> </head> <body> <div id="app"> <input v-model="newTodo" v-on:keyup.ent

【JS 综合】JS综合

视频教程链接:http://www.xuexi111.com/s/javascript/ 张孝祥:http://www.21edu8.com/pcnet/programming/26685/

angular js 综合笔记案例

AngularJS 表达式  (1.{{}}   2.ng-bind(单项绑定)) AngularJS 表达式写在双大括号内:{{ expression }} AngularJS 使用表达式把数据绑定到 HTML,这与 ng-bind 指令有异曲同工之妙. AngularJS 将在表达式书写的位置"输出"数据. AngularJS 表达式 很像 JavaScript 表达式:它们可以包含文字.运算符和变量. 表达式{{}} 案例 ng-init 初始化数据一般会用ng-controll

站长工具 &gt; 日常实用工具

百度相关 百度收录查询 指定时间内百度搜索,对指定网站的网页数量及具体情况 百度关键词挖掘 查询关键词PC指数.移动指数.收录量及排名 百度关键词地区排名 有些关键词在各地的排名是不一样的,就是通常说的关键字地区排名 百度关键词即时查询 百度相关搜索.百度推荐.其他人在搜的相关关键词! 百度关键词优化分析 帮助站长估算优化该关键词的难易程度及优化成本 SEO相关 SEO综合 了解该域名的相关信息,如域名年龄相关备案等等,及时调整网站优化. SEO优化建议 快速定位你页面哪些地方存在不利seo的因

HTML5&amp;Flash之粗知浅见

比较头大的是Flash又插入不进来了,无奈请您移步 点击这里 先去看一段动画展示: 什么是HTML HTML(Hyper Text Mark-up Language)即超文本标记语言.HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明文字.图形.动画.声音.表格.链接等. HTML的结构包括头部(Head).主体(Body)两大部分,其中头部描述浏览器所需的信息,而主体则包含所要说明的具体内容. 什么是HTML5: 我们所谓的HTML5所能达到的效果,并不是孤立的HTML升级版,

编程挑战JavaScript进阶篇(慕课网题目)

编程挑战 现在利用之前我们学过的JavaScript知识,实现选项卡切换的效果. 效果图: 文字素材: 房产: 275万购昌平邻铁三居 总价20万买一居    200万内购五环三居 140万安家东三环    北京首现零首付楼盘 53万购东5环50平    京楼盘直降5000 中信府 公园楼王现房 家居: 40平出租屋大改造 美少女的混搭小窝     经典清新简欧爱家 90平老房焕发新生     新中式的酷色温情 66平撞色活泼家居     瓷砖就像选好老婆 卫生间烟道的设计 二手房: 通州豪华3

公司某项目前端技术积累

最佳实践 BootStrap + jquery + jquery插件 + sea.js/require.js + Grunt 前期技术选型 BootStrap + Backbone.js + require.js + jquery插件 ExtJS Angular.js BootStrap + jquery + jquery插件 前端技术选型总结: 之所以选择 BootStrap + jquery + jquery插件 的原因是因为ExtJS或Angular.js这种大而全的MVC框架,学习成本较

小程序的一点实践

经过测试,闹心律师小程序第二期也即将上线了,而闹心对于小程序有怎么样的开发实践呢? 小程序在千呼万唤出来之后,带来了大量的开发的吐槽,但尽管我们再怎么嫌弃小程序语法,我们也无法否认微信给小程序所带来的流量以及收益,也必须看重小程序,也不得不去学习小程序 那么我们开发小程序应该怎么去开发呢,熟悉前端的我们开发起有小程序有什么困难吗? 困难不至于,围绕小程序的官方文档甚至是可以轻松的开发,就是开发的体验的麻烦倒是不少 首先来看看小程序的架构 初始化一个默认配置的小程序项目 app.json 里面定义