JavaScript元素创建的方式(二)

动态创建一个列表

方法一:对象.innerHTML = "标签及代码";

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<input type="button" value="按钮" id="btn"/>
<h1>我是标题一</h1>
<p>我是一个段落</p>
<h3>我是标题三</h3>
<div id="box" style="border:1px solid red; width: 400px;">
    我是一个盒子
</div>

<script>
    var fruits = ["apple","banana","grape","orange","watermelon","peach"];
    var box = document.getElementById("box");
    document.getElementById("btn").onclick = function(){
        var str = "<ul style='list-style:none; cursor:pointer'>";
        //循环创建对应的li
        for(var i=0; i<fruits.length; i++){
            str += "<li>"+fruits[i]+"</li>";
        }
        str += "</ul>";
        box.innerHTML = str;

        //获取所有的li标签,添加鼠标进入和鼠标离开事件
        var list = box.getElementsByTagName("li");
        for(var j=0; j<list.length; j++){
            list[j].onmouseover = function(){
                this.style.backgroundColor = "yellow";
                this.style.fontSize = "40px";
            };
            list[j].onmouseout = function(){
                this.style.backgroundColor = "";
                this.style.fontSize = "";
            };
        }
    };
</script>
</body>
</html>

点击按钮前:


点击按钮后:

banana是鼠标放上产生的效果。

方法二:document.createElement("标签的名字");

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<input type="button" value="按钮" id="btn"/>
<h1>我是标题一</h1>
<p>我是一个段落</p>
<h3>我是标题三</h3>
<div id="box" style="border:1px solid red; width: 400px;">
    我是一个盒子
</div>

<script>
    var fruits = ["apple","banana","grape","orange","watermelon","peach"];
    var box = document.getElementById("box");
    document.getElementById("btn").onclick = function(){
        //创建一个ul,追加到div中
        var ulObj = document.createElement("ul");
        ulObj.style.listStyle = "none";
        ulObj.style.cursor = "pointer";
        box.appendChild(ulObj);

        for(var i=0; i<fruits.length; i++){
            //循环创建对应的li,追加到ul中
            var liObj = document.createElement("li");
            liObj.innerHTML = fruits[i];
            ulObj.appendChild(liObj);

            //为li标签添加鼠标进入事件
            liObj.onmouseover = function(){
                this.style.backgroundColor = "yellow";
                this.style.fontSize = "40px";
            };
            //为li标签添加鼠标离开事件
            liObj.onmouseout = function(){
                this.style.backgroundColor = "";
                this.style.fontSize = "";
            };
        }

    };
</script>
</body>
</html>

点击按钮前:


点击按钮后:

apple是鼠标进入后的效果

注意:如果是循环的方式添加事件,推荐使用命名函数,如果不是循环的方式添加事件,推荐使用匿名函数。

猜你喜欢

转载自blog.csdn.net/sleepwalker_1992/article/details/80933773
今日推荐