HTML-CSS-JS学习

HTML+CSS+JS

系统结构

B / S架构:(以后主要走的方向是这个)

​ Browser / Server (浏览器 / 服务器)

优点:升级方便,只升级服务器端代码即可

缺点:速度慢,体验不好,界面不炫酷

C / S架构

​ Client / Server (客户端 / 服务器端)

优点:速度好,体验好,界面炫酷(娱乐型的系统多数是C/S架构)

缺点:升级麻烦,维护成本较高

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>String练习</title>
</head>
<body>
<script type="text/javascript">
    var x="abc"
    alert(typeof x)
    alert(x.length)
    function User(a,b,c) {
        this.sno=a;
        this.sname=b;
        this.sage=c;
    }
    var u1=new User(111,"张三",25)
    alert(u1.sno)
    alert(u1.sname)
    alert(u1.sage)
    Product=function (pno,pname,price) {
        //属性
        this.pno=pno
        this.pname=pname
        this.price=price
        //函数
        this.getPrice=function () {
            return this.price;
        }
    }
    var pro=new Product(111,"香蕉",3.8)
    var pri=pro.getPrice()
    alert(pri)
    Product.prototype.getPname = function () {
        return this.pname
    }
    var pna = pro.getPname()
    alert(pna)
    alert(typeof null)//"Object"
    alert(typeof NaN)//"number"
    alert(typeof undefined)//"undefined"
    alert(null==NaN)//false
    alert(null==undefined)//true
    alert(NaN==undefined)//false
    </script>
</body>
</html>

JS中的事件

  • blur失去焦点
  • change下拉列表选中项改变,或文本框内容改变
  • click鼠标单击
  • dbclick鼠标双击
  • focus获得焦点
  • keydown键盘按下
  • keyup键盘弹起
  • load页面加载完毕
  • mousedown鼠标按下
  • mouseover鼠标经过
  • mousemove鼠标移动
  • mouseout鼠标离开
  • reset表单重置
  • select文本被选定
  • submit表单提交
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>JS常用事件</title>
</head>
<body>
<script type="text/javascript">
    function sayHello() {
        alert("hello js")
    }
</script>
<input type="button" value="sdf" onclick="f1()"/>
<input type="button" value="hello1" id="01"/>
<input type="button" value="hello2" id="mybtn"/>
<input type="button" value="hello3" id="mybtn1"/>
<input type="button" value="hello4" id="mybtn2"/>
<script type="text/javascript">
    function f1() {
        alert("sad")
    }
    function doSome() {
        alert("do Some!")
    }
    //第一步:先获取这个按钮对象(document是全部小写,内置对象,可以直接用,document就代表整个HTML页面)
    var btnObj = document.getElementById("mybtn")
    //第二步:给按钮对象的onclick属性赋值
    btnObj.onclick = doSome
    function f() {
        alert("01")
    }
    var o = document.getElementById("01")
    o.onclick = f
    var mybtn1 = document.getElementById("mybtn1")
    mybtn1.onclick = function () {
        alert("test......")
    }
    document.getElementById("mybtn2").onclick = function () {
        alert("test22222")
    }
</script>
</body>
</html>

关于JS代码的执行顺序

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>关于JS代码的执行顺序</title>
</head>
<body>
<script type="text/javascript">
    window.onload = function ready() {
        var btn = document.getElementById("btn")
        btn.onclick = function () {
            alert("hello js")
        }
    }
    </script>
<input type="button" value="hello" id="btn" />
</body>
</html>

JS代码设置节点的属性

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>JS代码设置节点的属性</title>
</head>
<body>
<script type="text/javascript">
    window.onload = function () {
        document.getElementById("btn").onclick = function () {
            var mytext = document.getElementById("mytext")
            mytext.type = "checkbox"
        }
    }
    </script>
<input type="text" id="mytext"/>
<input type="button" value="将文本框修改为复选框" id="btn"/>
</body>
</html>

DOM编程-获取文本框的value

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>DOM编程-获取文本框的value</title>
</head>
<body>
<script type="text/javascript">
    window.onload = function () {
        //var btnElt = window.document.getElementById("btn")
       var btnElt = document.getElementById("btn")
        alert(btnElt)//object HTMLInputElement
    }
    </script>
<input type="button" id = "btn" value="hello"/>
</body>
</html>

innerHTML和innerText操作div和spa

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>innerHTML和innerText操作div和span</title>
    <style type="text/css">
        #div1{
            background-color: aquamarine;
            width: 300px;
            height: 300px;
            border: 1px black solid;
            position: absolute;
            top: 100px;
            left: 100px;
        }
    </style>
</head>
<body>
<script type="text/javascript">
    window.onload = function () {
        var btn1 = document.getElementById("btn1")
        btn1.onclick = function () {
            //第一步:获取div对象
            var divElt = document.getElementById("div1")
            //第二步:使用innerHTML属性设置元素内部的内容
            divElt.innerHTML = "<font color='red'>用户名不能为空!!!</font>"
        }
        var btn2 = document.getElementById("btn2")
        btn2.onclick = function () {
            //第一步:获取div对象
            var div = document.getElementById("div1")
            //第二步:使用innerHTML属性设置元素内部的内容
            div.innerText = "<font color='red'>用户名不能为空!!!</font>"
        }
    }
</script>
<input type="button" value="设置div中的内容(innerHTML)" id="btn1"/>
<input type="button" value="设置div中的内容(innerText)" id="btn2"/>
<div id="div1"></div>
</body>
</html>

DOM编程-关于正则表达式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>DOM编程-关于正则表达式</title>
</head>
<body>
<script type="text/javascript">
    window.onload = function () {
        document.getElementById("btn").onclick = function () {
            var email = document.getElementById("email").value
            var emailRegExp = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/
            var ok = emailRegExp.test(email)
            if (!ok){
                document.getElementById("emailError").innerText="邮箱地址不合法"
            }else {
                document.getElementById("emailError").innerText="邮箱地址合法"
            }
        }
        document.getElementById("email").onfocus = function () {
            document.getElementById("emailError").innerText=""
        }
    }
    </script>
<input type="text" id="email"/>
<span id="emailError"style="color: #ff0000;font-size: 12px"></span>
<br>
<input type="button" value="验证邮箱" id="btn"/>
</body>
</html>

去除字符串的前后空白trim

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>去除字符串的前后空白trim</title>
</head>
<body>
<script type="text/javascript">
    //低版本的IE浏览器不支持字符串的trim()函数
    //自己对String类扩展一个全新的trim()函数
    String.prototype.trim = function(){
        return this.replace(/^\s+/,"").replace(/\s+$/,"")
    }
    window.onload = function () {
        document.getElementById("btn").onclick = function () {
            var username = document.getElementById("username").value
            //去除前后空白
            username = username.trim()
            //测试
            alert("--->" + username + "<----")
        }
    }
    </script>
<input type="text" id="username"/>
<input type="button" value="获取用户名" id="btn"/>
</body>
</html>

表单验证

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>表单验证</title>
    <style type="text/css">
        span{
            color: red;
            font-size: 12px;
        }
        </style>
</head>
<body>
<script type="text/javascript">
    window.onload =function () {
        //给用户名文本框绑定blur事件
        var usernameElt = document.getElementById("username")
        //获取username的span标签
        var usernameErrorSpan = document.getElementById("usernameError")
        usernameElt.onblur = function () {
            //获取用户名
            var username = usernameElt.value
            username=username.trim()
            //判断用户名是否为空
            if (username=== ""){
                usernameErrorSpan.innerText = "用户名不能为空"
            }else {if (username.length<6||username.length>14){
                usernameErrorSpan.innerText = "用户名长度必须在【6-14】之间"
            }else {
            }
            }
        }
        //给username这个文本框绑定获得焦点事件
        usernameElt.onfocus =function () {
            //清空非法的value
            if (usernameErrorSpan.innerText!==""){
                usernameElt.value=""
            }else {
            }
            //清空span
            usernameErrorSpan.innerText = ""
            var regExp = /^[A-Za-z0-9]+$/
            var ok = regExp.test(username)
            if (ok){
            }
            else {
                usernameErrorSpan.innerText = "用户名只能由数字和字母组成"
            }
        }
        //获取密码错误提示的span标签
        var wdErrorSpan = document.getElementById("wdError")
        //获取确认密码框对象
        var userwd2Elt = document.getElementById("userwd2")
        userwd2Elt.onblur = function () {
            //获取密码和确认密码
            var userwdElt = document.getElementById("userwd")
            var userwd = userwdElt.value
            var userwd2 = userwd2Elt.value
            if (userwd != userwd2){
                //密码不一致
                wdErrorSpan.innerText = "密码不一致"
            }else {
                //密码一致
            }
        }
        //绑定focus事件
        userwd2Elt.onfocus = function () {
            if (wdErrorSpan.innerText != ""){
                userwd2Elt.value = ""
            }
            wdErrorSpan.innerText = ""
        }
        //给email绑定blur事件
        var emailElt = document.getElementById("email")
        //获取email的span
        var emailSpan = document.getElementById("emailError")
        email.onblur = function () {
            //获取email
            var email = emailElt.value
            var emailRegExp = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/
            var ok = emailRegExp.test(email)
            if (ok){
                //合法
            }else {
                //不合法
                emailSpan.innerText = "邮箱不合法"
            }
        }
        //给email绑定foucs
        emailElt.onfocus = function () {
            if (emailSpan.innerText != ""){
                emailElt.value = ""
            }
            emailSpan.innerText = ""
        }
        //给提交按钮绑定鼠标点击事件
        var submitBtnElt = document.getElementById("submitBtn")
        submitBtnElt.onclick = function () {
            //触发username的blur userwd2的blur email的blur
            usernameElt.focus()
            usernameElt.blur()
            userwd2Elt.focus()
            userwd2Elt.blur()
            emailElt.focus()
            emailElt.blur()
            if (usernameErrorSpan.innerText == "" && wdErrorSpan.innerText == "" && emailElt.innerText == ""){
                var userFormElt = document.getElementById("userForm")
                userFormElt.submit()
            }
        }
    }
    </script>
<form id="userForm" action = "http://localhost:8080/jd/save" method="get"><br>
    用户名<input type="text" name="username" id="username"/><span id="usernameError"></span><br>
    密码<input type="text" name="userwd" id="userwd"/><br>
    确认密码<input type="text" id="userwd2"/><span id="wdError"></span><br>
    邮箱<input type="text" name="email" id="email"/><span id="emailError"></span><br>
    <input type="button" value="注册" id="submitBtn"/><br>
    <input type="reset" value="重置"/>
</form>
</body>
</html>

完善了一下

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>表单验证</title>
    <style type="text/css">
        span{
            color: red;
            font-size: 12px;
        }
        </style>
</head>
<body>
<script type="text/javascript">
    window.onload =function () {
        //给用户名文本框绑定blur事件
        var usernameElt = document.getElementById("username")
        //获取username的span标签
        var usernameErrorSpan = document.getElementById("usernameError")
        usernameElt.onblur = function () {
            //获取用户名
            var username = usernameElt.value
            username=username.trim()
            //判断用户名是否为空
            if (username=== ""){
                usernameErrorSpan.innerText = "用户名不能为空"
            }else {if (username.length<6||username.length>14){
                usernameErrorSpan.innerText = "用户名长度必须在【6-14】之间"
            }else {
            }
            }
        }
        //给username这个文本框绑定获得焦点事件
        usernameElt.onfocus =function () {
            //清空非法的value
            if (usernameErrorSpan.innerText!==""){
                usernameElt.value=""
            }else {
            }
            //清空span
            usernameErrorSpan.innerText = ""
            var regExp = /^[A-Za-z0-9]+$/
            var ok = regExp.test(username)
            if (ok){
            }
            else {
                usernameErrorSpan.innerText = "用户名只能由数字和字母组成"
            }
        }
        //获取密码错误提示的span标签
        var wdErrorSpan = document.getElementById("wdError")
        //获取确认密码框对象
        var userwd2Elt = document.getElementById("userwd2")
        userwd2Elt.onblur = function () {
            //获取密码和确认密码
            var userwdElt = document.getElementById("userwd")
            var userwd = userwdElt.value
            var userwd2 = userwd2Elt.value
            if (userwd != userwd2){
                //密码不一致
                wdErrorSpan.innerText = "密码不一致"
            }else {
                //密码一致
            }
        }
        //绑定focus事件
        userwd2Elt.onfocus = function () {
            if (wdErrorSpan.innerText != ""){
                userwd2Elt.value = ""
            }
            wdErrorSpan.innerText = ""
        }
        //给email绑定blur事件
        var emailElt = document.getElementById("email")
        //获取email的span
        var emailSpan = document.getElementById("emailError")
        email.onblur = function () {
            //获取email
            var email = emailElt.value
            var emailRegExp = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/
            var ok = emailRegExp.test(email)
            if (ok){
                //合法
            }else {
                //不合法
                emailSpan.innerText = "邮箱不合法"
            }
        }
        //给email绑定foucs
        emailElt.onfocus = function () {
            if (emailSpan.innerText != ""){
                emailElt.value = ""
            }
            emailSpan.innerText = ""
        }
        //给提交按钮绑定鼠标点击事件
        var submitBtnElt = document.getElementById("submitBtn")
        submitBtnElt.onclick = function () {
            //触发username的blur userwd2的blur email的blur
            usernameElt.focus()
            usernameElt.blur()
            userwd2Elt.focus()
            userwd2Elt.blur()
            emailElt.focus()
            emailElt.blur()
            if (usernameErrorSpan.innerText == "" && wdErrorSpan.innerText == "" && emailElt.innerText == ""){
                var userFormElt = document.getElementById("userForm")
                userFormElt.submit()
            }
        }
    }
    </script>
<form id="userForm" action = "http://localhost:8080/jd/save" method="get"><br>
    <table><tr>
            <th>用户名</th>
                <td><input type="text" name="username" id="username"/></td>
                <td><span id="usernameError"></span></td>
        </tr><br>
        <tr><th>密码</th><td><input type="text" name="userwd" id="userwd"/></td></tr><br>
        <tr><th>确认密码</th><td><input type="text" id="userwd2"/></td><td><span id="wdError"></span></td></tr><br>
        <tr><th>邮箱</th><td><input type="text" name="email" id="email"/></td><td><span id="emailError"></span></td></tr><br>

        <tr><td colspan="2" align="center"><input type="button" value="注册" id="submitBtn"/><input type="reset" value="重置"/></td></tr>
    </table>
</form>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值