JavaScript学习笔记(第二天)

今天我们继续学习Javascript。

Js运算符


js运算符感觉跟java一样,其实没什么好讲。

1算术运算符:
这里写图片描述

加减乘除,递增递减。一样一样。

2赋值运算符:

这里写图片描述

还是跟java一样,略过。

关于+运算符提一下,其实也跟java一样,可以做加法运算,也可以连接两个字符串。当然,跟java不一样的是当数字跟字符串进行加法运算,结果是做字符串的拼接。

3一元运算符:

delete:删除对象属性或者方法引用。

举个列子:

    <script>
            var o=new Object();
            o.name="David";
            alert(o.name);
            delete o.name;
            alert(o.name);
        </script>

定义一个对象o以及其属性name,先弹出name,然后删除name属性,在弹出。

结果:第一个弹窗弹出undefined

js验证

js验证一般是对form表单进行验证,验证内容其实跟android登陆一样,是否为空,格式是否正确等等。


<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>js验证</title>
        <script>
            function validate_required(field,txt) {
                with(field){
                    if(value==null||value==""){
                        alert(txt);
                        return false;
                    }
                }
            }
            function validate_form(thisform) {
                with (thisform){
                    if(validate_required(email,"Email must be filled out!")==false){
                        email.focus();
                        return false;
                    }
                }
            }
        </script>
    </head>
    <body>
         <form action="submitpage.htm" onsubmit="return validate_form(this)" method="post">
             Email:<input type="text" name="email" size="30">
             <input type="submit" value="Submit">
         </form>
    </body>
</html>

这里以一个例子来讲述我的理解。定义两个带参函数validate_required,validate_form。

validate_required函数参数分别为一个对象和字符串,通过with方法来引用field对象的value属性,进行非空判断,如果为空弹出txt,返回false。

validate_form函数传入表单对象,通过with方法来引用表单对象的email属性,调用validate_required方法传入email对象以及字符串,如果为false,让email获取焦点,返回false

在标签中创建一个form表单。action表示提交动作,一般会使用服务器脚本来处理提交表单。

onsubmit等号右边可以理解为一个函数,在web开发中onsubmit必须有2返回值,返回true允许提交表单,返回false则不允许提交表单,说明提交的表单有问题。

是最重要的表单元素,type=txt表示输入框,名称是email,size是输入长度。type=”submit”则表示为提交按钮。

实际效果,点击submit会弹出Email must be filled out!,然后email输入框获取焦点。

下面来一个完整的邮箱验证

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>js验证</title>
        <script>
            function validate_required(field,txt) {
                with(field){
                    if(value==null||value==""){
                        alert(txt);
                        return false;
                    }else {
                        var apos=value.indexOf("@");
                        var dot=value.lastIndexOf(".");
                        if(apos<1||dot-apos<2){
                            alert(txt)
                            return false;
                        }else {
                            return true;
                        }
                    }
                }
            }
            function validate_form(thisform) {
                with (thisform){
                    if(validate_required(email,"Email must be filled out!")==false){
                        email.focus();
                        return false;
                    }else {
                        alert("输入正确");
                    }
                }
            }
        </script>
    </head>
    <body>
         <form action="submitpage.htm" onsubmit="return validate_form(this)" method="post">
             Email:<input type="text" name="email" size="30">
             <input type="submit" value="Submit">
         </form>
    </body>
</html>

在前面的基础上稍加修改,添加一些对邮箱的验证逻辑,如果包含@,和点,且@的坐标应该大于1,点的坐标应该比@坐标大2,验证结果

这里写图片描述

反之,

这里写图片描述

JavaScript HTML DOM


通过上面的一翻学习,我们会思考如何操作HTML中那么多的标签,那就是通过HTML DOM 来访问的。
先来看一下HTML DOM(文档对象模型)的结构

这里写图片描述

其实这些就是html中的结构标签头部,内容区域等

js能够做什么?js能够改变页面所有的html元素,属性,css,以及各种事件,例如点击事件。

查找HTML元素

1:通过id查找

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

</head>
<body>
<p id="name">张三</p>
<script>
    var x=document.getElementById("name");
    document.write("元素值为:"+x.innerHTML);
    alert(x.innerHTML);
</script>
</body>
</html>

通过id=name找到p标签里的内容

2通过标签名找html元素

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>通过标签名查找HTMl元素</title>
</head>
<body>
  <div id="main">
      <p>通过标签名查找HTMl元素1</p>
      <p>通过标签名查找HTMl元素2</p>
      <p>通过标签名查找HTMl元素3</p>
      <p>通过标签名查找HTMl元素4</p>
  </div>
  <div id="main2">
      <p>通过标签名查找HTMl元素</p>
  </div>
<script>
    var x=document.getElementById("main");
    var y=x.getElementsByTagName("p");
    alert(y[0].innerHTML);
</script>
</body>
</html>

这里只讲为啥y是数组,因为div标标签下可以包含多个标签。


HTML DOM 允许 JavaScript 改变 HTML 元素的内容。


1改变HTML输出流。

通过document.write();来写入内容

2改变html内容。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>改变 HTML 输出流</title>
    <script>
        function aa() {
            document.getElementById("p1").innerHTML="Hello world";
        }
    </script>
</head>
<body onload="aa()">
<p id="p1">ni hao !</p>
<script>
    document.write(Date());
</script>
</body>
</html>

3改变html属性

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>改变html属性</title>
    <script>
        function aa() {
            document.getElementById('t1').type="button";
            document.getElementById('img').src="img/SAM_0371.JPG";
        }
    </script>
</head>
<body onload="aa()">
<form name="form" onload="aa()">
    <input type="text" id="t1">
    <input type="button" id="btn">
</form>
<img src="img/SAM_0384.JPG" id="img">
</body>
</html>

改变 HTML 样式


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>改变 HTML 样式</title>
    <script>
        function aa() {
            document.getElementById("p1").style.color='red';
        }
    </script>
</head>
<body onload="aa()">
   <p id="p1">aaaaaa</p>
</body>
</html>

查找id為p1的標簽,改變樣式style中color為紅色。

可以這麽寫:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>改变 HTML 样式</title>
    <script>
        function aa() {
           var x=document.getElementById("p1");
           x.style.color='red';
           x.style.backgroundColor='blue';
        }
    </script>
</head>
<body onload="aa()">
   <p id="p1">aaaaaa</p>
</body>
</html>

所以學習的時候可以發散了一下。


HTML DOM 使 JavaScript 有能力对 HTML 事件做出反应。


通過對onlick=“函數”來處理點擊事件。

例子:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>HTML DOM 使 JavaScript 有能力对 HTML 事件做出反应。</title>
    <script>
        function aa() {
            alert("謝謝點擊");
        }
    </script>
</head>
<body>

<img src="img/SAM_0371.JPG" onclick="aa()">
</body>
</html>

效果:點擊圖片,彈出彈窗

这里写图片描述

點擊修改元素。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>HTML DOM 使 JavaScript 有能力对 HTML 事件做出反应。</title>
    <script>
        function aa() {
            alert("謝謝點擊");
        }
        function bb() {
            document.getElementById('p1').innerHTML="謝謝點擊";
        }
    </script>
</head>
<body>

<!--<img src="img/SAM_0371.JPG" onclick="aa()">-->
<p id="p1" onclick="bb()">Hello wrold</p>
</body>
</html>

有參函數

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>HTML DOM 使 JavaScript 有能力对 HTML 事件做出反应。</title>
    <script>
        function aa() {
            alert("謝謝點擊");
        }
        function bb() {
            document.getElementById('p1').innerHTML="謝謝點擊";
        }
        function cc(a) {
            a.innerHTML='shui jiao le '
        }
    </script>
</head>
<body>

<!--<img src="img/SAM_0371.JPG" onclick="aa()">-->
<!--<p id="p1" onclick="bb()">Hello wrold</p>-->
<p id="a" onclick="cc(this)">dian wo shi shi </p>
</body>
</html>

通過點擊事件修改標簽屬性

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>HTML 事件属性</title>
    <script>
        function aa() {
            document.write(Date())
        }
    </script>
</head>
<body>
    <button onclick="aa()">dian ji wo</button>
</body>
</html>

onload 和 onunload 事件

分別在進入和退出頁面時被觸發。可用與處理cookie

onchange 事件

類似與android中對edittext輸入内容的監聽,儅輸入内容發生變化時調用。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>HTML 事件属性</title>
    <script>
        function aa() {
            document.write(Date())
        }
        function bb(a) {
           a.value++;
        }
    </script>
</head>
<body>
<button onclick="aa()">dian ji wo</button>
<input type="text" id="txt" onchange="bb(this)">
</body>
</html>

每次改變内容+1。

onmouseover 和 onmouseout 事件與onmousedown、onmouseup

onmouseover 和 onmouseout 事件可用于在用户的鼠标移至 HTML 元素上方或移出元素时触发函数。onmousedown鼠標點下,onmouseup鼠標擡起,跟onlick一起用

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>onfocus事件</title>
    <script>
        function aa(a) {
            a.style.backgroundColor='red';
        }
    </script>
</head>
<body>
<input type="text" onfocus="aa(this)">
<p onmousedown="style.backgroundColor='red'" onmouseup="style.backgroundColor='blue'">onmousedown 和 onmouseup</p>
<p onmouseout="style.backgroundColor='red'" onmouseover="style.backgroundColor='blue'">onmouseout 和 onmouseover</p>
</body>
</html>

onload事件:

頁面加載結束調用

onfocus事件
獲取焦點時調用

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>onfocus事件</title>
    <script>
        function aa(a) {
            a.style.backgroundColor='red';
        }
    </script>
</head>
<body>
<input type="text" onfocus="aa(this)">
</body>
</html>

獲取焦點時改變背景色。

十二點多了,睡覺!!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值