JavaScript基础知识三

时间:2021-09-01 14:16:54
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <!--HTML DOM-->
    <!--Document Object Model-->
    <!--JS能够改变页面中所有的HTML元素、属性、CSS样式及对所有事件做出反应-->
    <!--
        通过JS操作HTML元素的前提是找到该元素,有三种方法:
            1.通过id找到HTML元素
            2.通过标签名找到HTML元素
            3.通过类名找到HTML元素
    -->
    <!--通过id找到HTML元素-->
    <!--如果找到该元素,则该方法以对象(在x中)的形式返回该元素-->
    <!--如果未找到该元素,则x将包含null-->
    <p id="intro">Hello World!</p>
    <p>本例演示<b>getElementById</b>的用法</p>
    <script>
        x = document.getElementById("intro");
        document.write("<p>id='intro'的段落中的文本是: " + x.innerHTML + "</p>");
    </script>

    <!--通过标签名查找HTML元素-->
    <p>Hello World!</p>
    <div id="main">
        <p>The DOM is very useful.</p>
        <p>本例演示<b>getElementsByTagName</b>方法</p>
    </div>
    <script>
        var x = document.getElementById("main");
        var y = x.getElementsByTagName("p");
        document.write('id 为"main"的div中的第一段文本是: ' + y[0].innerHTML + "<br />");
        document.write('id 为"main"的div中的第二段文本是: ' + y[1].innerHTML + "<br />");
    </script>

    <!--JS能够创建动态的HTML内容-->
    <script>
        document.write(Date() + "<br />");
    </script>

    <!--修改HTML内容的最简单方法: 使用innerHTML属性-->
    <p id="p1">这是段落内容,JS可以改变它</p>
    <script>
        document.getElementById("p1").innerHTML="这是修改后的内容";
    </script>

    <!--改变HTML属性-->
    <img id="image" src="海绵宝宝2.jpg" />
    <script>
        document.getElementById("image").src="海绵宝宝1.gif";
    </script>
    <p>上面的原始图片是静态的,JS把它换成一张动态的</p>

    <!--修改CSS样式-->
    <p id="p2">这是一段内容</p>
    <p id="p3">这是另一段内容</p>
    <script>
        document.getElementById("p2").style.color="blue";
        document.getElementById("p3").style.fontSize="larger";
    </script>

    <!--上面是直接对CSS样式修改,还可以通过点击按钮等形式来主动改变-->
    <h1 id="id1">这是最大的一个标题</h1>
    <button type="button" onclick="document.getElementById('id1').style.color='red'">点击我可以改变大标题的字体颜色</button>

    <!--使元素可见或不可见-->
    <p id="p4">这是一段文本,可被隐藏或显示可见</p>
    <input type="button" value="隐藏文本" onclick="document.getElementById('p4').style.visibility='hidden'" />
    <input type="button" value="显示文本" onclick="document.getElementById('p4').style.visibility='visible'" />

    <!--对事情做出反应-->
    <!--可以在事件发生时执行JS,比如当用户在HTML元素上点击时-->
    <h1 onclick="this.innerHTML='谢谢!'">点击我会发生改变</h1>
    <!--通过调用函数来改变-->
    <script>
        function changetext(id) {
            id.innerHTML="标题已经被改变";
        }
    </script>
    <h2 onclick="changetext(this)">点击我会通过调用函数来改变我</h2>

    <!--也可通过点击按钮来实现-->
    <button onclick="displayDate()">点我将会在下面显示时间</button>
    <script>
        function displayDate() {
            document.getElementById("demo").innerHTML=Date();
        }
    </script>
    <p id="demo"></p>

    <!--JS向HTML元素分配事件-->
    <button id="mybutton">点我触发事件</button>
    <script>
        document.getElementById("mybutton").onclick=function () {displayDate1()};
        function displayDate1() {
            document.getElementById("demo2").innerHTML=Date();
        }
    </script>
    <p id="demo2"></p>

    <!--onchange事件,一般结合对输入字段的验证来使用-->
    <script>
        function myFunction() {
            var x = document.getElementById("fname");
            x.value = x.value.toUpperCase();
        }
    </script>
    请输入英文字符: <input type="text" id="fname" onchange="myFunction()" />
    <p>当鼠标离开输入框点击其他地方时,会触发将输入文本转换为大写的函数</p>

    <!--onmouseover和onmouseout事件-->
    <!--以上两事件用于将用户的鼠标移至HTML元素或移出时触发事件-->
    <div onmouseover="mOver(this)" onmouseout="mOut(this)" style="background-color:green; width: 120px; height: 20px; padding: 40px; color: #ffffff;">把鼠标移动这里我会发生改变</div>
    <script>
        function mOver(obj) {
            obj.innerHTML="谢谢"
        }
        function mOut(obj) {
            obj.innerHTML="把鼠标移到我这里会发生同样的改变"
        }
    </script>

    <!--onmousedown\onmouseup\onclick事件-->
    <div onmousedown="mDown(this)" onmouseup="mUp(this)" style="background-color:blue; color:#ffffff; width:180px; height:200px; padding:80px; font-size:24px;">点击我会发生改变,如果按住鼠标会有提示</div>

    <script>
        function mDown(obj) {
            obj.style.backgroundColor="#1ec5e5";
            obj.innerHTML="请释放鼠标按钮"
        }
        function mUp(obj) {
            obj.style.backgroundColor="green";
            obj.innerHTML="请按下鼠标按钮"
        }
    </script>
</body>
</html>