WebApi编程(一)-DOM

本文详细介绍了JavaScript的基本DOM操作,包括通过ID、标签、类名获取元素,以及事件基础和事件处理程序。同时展示了如何改变元素内容、属性、样式,以及操作元素样式的多种方法。此外,还提供了文本框聚焦和失焦时的文本显示与恢复的实例,帮助读者深入理解JavaScript在页面交互中的应用。

1.js组成
基本语法掌握后,我们要学习DOM和BOM,页面交互功能在这里插入图片描述
API: 就是一个接口,一些预定义的函数。
2.DOM(文档对象模型)
文档:一个页面就是一个文档,document
元素:网页中的标签都是元素,element
节点:网页中的内容就是节点,node
①获取网页元素

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id='xiaodi'>小邸</div>
    <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
    </ul>
    <ul id="nav">
        <li>6</li>
        <li>7</li>
        <li>8</li>
        <li>9</li>
        <li>0</li>
    </ul>

    <div class="hezi">盒子1</div>
    <div class="hezi">盒子2</div>

    <!--此处的js需要写在下面,因为页面加载从上往下-->
    <script>
        // 1.通过Id获取
        var byid = document.getElementById('xiaodi');
        console.dir(byid);
        // 2.通过标签获取
        // byelement是存放所有标签的数组,获取直接遍历
        var byelement = document.getElementsByTagName('li');
        // 这样操作会获得所有的li标签,我只想获取上边的怎么办呢


        // 可以先通过id来获取
        var nav = document.getElementById('nav');
        var nav_li = nav.getElementsByTagName('li');
        console.log(nav_li[0]);

        // 3.html5新增,支持ie9以上的类名获取
        var byclass = document.getElementsByClassName('hezi');
        console.log(byclass);
        // 4.querySelector返回第一个元素,任何选择器
        var first = querySelector('.hezi');
        var first1 = querySelector('#id');
        // 或者使用querySelectorAll()全部获取

        // 特殊元素html和body
        var bodyele = document.body;
        var htmlele = document.documentElement;
    </script>
</body>
</html>

②事件基础
出发响应机制,分为三个部分,分别为事件源,事件类型,事件处理程序。
事件源就是谁触发事件,类型就是什么样的事件,处理程序就是干什么。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <button id="btn">点击弹出对话框</button>
    <div id="nav">你中奖了!</div>
    <script>
        // 获取事件源
        var btn = document.getElementById('btn');
        // 触发事件包括点击,鼠标经过,键盘,滚轮等等
        btn.onclick = function() {
            alert('出来了');
        }
        var nav = document.getElementById('nav');
        nav.onclick = function() {
            alert('中了');
        }
    </script>
</body>
</html>

③操作元素

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <button id="btn">点击</button>
    <div id="box">点击按钮出时间</div>
    <p>不点也能获取</p>
    <div id="box1"></div>
    <script>
        // 1.改变元素内容innerText,不识别html标签
        var btn = document.querySelector('#btn');
        btn.onclick = function() {
            var box = document.querySelector('#box');
            // 改变内容
            box.innerText = getTime();
        }
        // 不要点击刷新直接得到时间
        var p = document.querySelector('p');
        p.innerText = getTime();


        function getTime() {
            var date1 = new Date();
            var date2 = date1.getFullYear() + '年' + (date1.getMonth() + 1) + '月' + date1.getDate() + '日' + date1.getHours() + '时' + date1.getMinutes() + '分' + date1.getSeconds() + '秒' + ' 星期' + date1.getDay();
            return date2;
        }

        // 2.innerHtml识别html标签
        var box1 = document.querySelector('#box1');
        // box1.innerText = '<strong>加粗文字</strong>'; // 不好使,不识别
        box1.innerHTML = '<strong>加粗文字</strong>';

        // 两种操作元素的方法都可以获得元素内容和修改元素


        // 
    </script>
</body>
</html>

④改变元素属性

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <button id="xi">喜羊羊</button>
    <button id="lan">懒洋洋</button>
    <div>
        <img src="C:\java-script_learning\image\xi.jpg" title="喜羊羊">
    </div>
    <button id="btn">获取</button>
    <input type="text" value="输入内容">
    <script>
        // 切换图片
        var xi = document.querySelector('#xi');
        var lan = document.querySelector('#lan');
        var image = document.querySelector('img');
        lan.onclick = function() {
            image.src = 'C:\\java-script_learning\\image\\lan.jpg';
            image.title = '懒洋洋';        }
        xi.onclick = function() {
            image.src = 'C:\\java-script_learning\\image\\xi.jpg';
            image.title = '懒洋洋';
        }
        
        // 改变文本框内容
        var btn = document.querySelector('#btn');
        var input = document.querySelector('input');
        btn.onclick = function() {
            input.value = '别输入';
            btn.disabled = true;
        }
        
    </script>
</body>
</html>

简单得密码隐藏和显示例子

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box {
            position: relative;
            width: 400px;
            border-bottom: 1px solid #ccc;
            margin: 100px auto;
        }
        .box input {
            width: 370px;
            height: 30px;
            border: 0;
            outline: 0;
        }
        .box img {
            width: 20px;
            height: 20px;
            top: 25px;
            right: 2px;
            position: absolute;
        }
    </style>
</head>
<body>
        <div class="box">
            用户名<input type="text" id="name"><br>
        </div>
        <div class="box">
            <label for="">
                <img src="C:\java-script_learning\image\yanj1.jpg" alt="">
            </label>
            密码<input type="password" id="pass">
        </div>
        <script>
            var pass = document.querySelector('#pass');
            var btn = document.querySelector('button');
            var image = document.querySelector('img');
            flag = 0;
            image.onclick = function() {
                if(flag == 0) {
                    pass.type = 'text';
                    image.src = 'C:\\java-script_learning\\image\\yanj2.jpg';
                    flag = 1;
                }else {
                    pass.type = 'password';
                    image.src = 'C:\\java-script_learning\\image\\yanj1.jpg';
                    flag = 0;
                }
            }

        </script>
</body>
</html>

⑤操作元素样式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        div {
            width: 300px;
            height: 200px;
            background-color: skyblue;
        }
    </style>
</head>
<body>
    <div></div>
    <script>
        // 点击盒子变颜色,操作样式
        var box = document.querySelector('div');
        box.onclick = function() {
            box.style.backgroundColor = '#ccc';
        }
    </script>
</body>
</html>

或者

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .change {
            background-color: aqua;
            color: brown;
            font-size: large;
        }
    </style>
</head>
<body>
    <div>
        哈哈
    </div>
    <script>
        var box = document.querySelector('div');
        box.onclick = function() {
            // 增加类名给样式
            this.className = 'change';
        }
    </script>
</body>
</html>

文本消失复原案例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <input type="text" value="手机">
    <script>
        var te = document.querySelector('input');
        // onfocus获取焦点
        te.onfocus = function() {
            if(te.value === '手机') {
                te.value = '';
            }else {
                te.value = te.value;
            }
        }
        // onblur失去焦点
        te.onblur = function() {
            if(te.value === '') {
                te.value = '手机';
            }
        }
    </script>
</body>
</html>

总结
在这里插入图片描述

、源码特点       1、先进的 HTTP 编程模型: 使用新的强类型的 HTTP 对象模型直接操作 HTTP 请求和响应, 在 HTTP客户端使用相同的编程模型和 HTTP 管道;       2、支持路由: Web API 完整支持 ASP.NET 路由, 包括路由参数和约束。 此外, 到动作的映射支持约定, 从此将不再需要向类或者方法添加类似于 [HttpPost] 之类的属性;       3、内容协商: 客户端与服务端可以起决定 API 返回数据的格式。 默认支持 XML, JSON 以及 Form URL-Encoded 格式, 可以扩展添加自定义格式, 甚至可以替换掉默认的内容协商策略;       4、模型绑定与验证: 模型绑定器可以轻易地从 HTTP 请求中提取数据并转换成在动作方法中使用的 .Net 对象;       5、过滤: Web API 支持过滤, 包括总所周知的 [Authorize] 过滤标记, 可以为 Action 添加并插入自定义过滤, 实现认证、异常处理等;       6、查询聚合: 只要简单的返回 Iqueryable , Web API 将会支持通过 OData 地址约定进行查询;       7、改进的 Http 细节可测试性: Web API 不是将 HTTP 细节设置到个静态的 Context 对象上, 而是使用 HttpRequestMessage 和 HttpResponseMessage 实例, 可以使用这些对象的泛型版本为这些 Http 类型添加自定义类型;       8、改进的依赖反转 (IoC) 支持: Web API 使用 MVC Dependency Resolver 实现的服务定位器模式在不同的场景下来获取实例;       9、基于代码的配置: Web API 单独使用代码完成配置, 从而保证了配置文件的整洁;       10、自托管 (Self-Host) : Web API 除了可以托管在 IIS 中, 还可以托管在进程中,依旧可以使用路由以及其它的特性。 二、注意事项       1、开发环境为Visual Studio 2012,数据库为SqlServer2008,使用.net 4.0开发。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值