老师,帮我看一下

老师,帮我看一下

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<meta http-equiv="X-UA-Compatible" content="ie=edge">

<title></title>

<style type="text/css">

*{

margin: 0;

padding: 0;

}

div{

width: 500px;

background-color: aqua;

margin: 0 auto;

padding-bottom: 40px;

}


ul{

width: 200px;

margin: 0 auto;

text-align: left;

background-color: antiquewhite;

padding-bottom: 50px;

}

ul li{

list-style: none;

background-color: orangered;

margin-bottom: 20px;

margin-left: 50px;

margin-right: 50px;

}

.colors{

background-color: greenyellow;

}

</style>

</head>

<body>

<div>

<button type="button">添加元素</button>

<button type="button">删除元素</button>

<ul>我是UL

<li>我是li1</li>

<li>我是li2</li>

<li>我是li3</li>

</ul>

</div>


<script type="text/javascript">

var btn1=document.getElementsByTagName("button")[0];

var btn2=document.getElementsByTagName("button")[1];


btn1.onclick=function(){

var lis=document.querySelectorAll("li");

var uls=document.querySelector("ul");

var a=document.createElement("li");

uls.appendChild(a);

a.innerText="我是li"+(lis.length+1);

a.style.backgroundColor="#ADFF2F"

}

btn2.onclick=function(){

var lis=document.querySelectorAll("li");

var uls=document.querySelector("ul");

if(lis.length>0){

uls.removeChild(uls.lastChild);

}

}

var lis=document.querySelectorAll("li");

var uls=document.querySelector("ul");


</script>

</body>

</html> 

http://img1.sycdn.imooc.com//climg/5de512d80918f31807780169.jpg

http://img1.sycdn.imooc.com//climg/5de512ec094d823b09220153.jpg

我把这个获取的dom对象放置的位置不一样,为什么效果不一样?什么原因?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
提问者 精慕门407314 2019-12-03 11:03:57

老师、我这个函数外部的var声明后不就成了全局变量了么?还需要再执行产生么?

  • 同学你好,函数外部的用var声明确实是全局变量,所以当代码自上而下执行的时候,只会被执行一次,只能创建一个li标签,而我们则需要创建多个li标签,也就是需要再执行产生标签的代码,所以要放在函数里面,每执行一次函数,创建一个li标签,往里面填充内容,也就是每点击一次按钮,在页面生成一个li元素。 如果我的回答帮助到了你,欢迎采纳,祝学习愉快~
    2019-12-03 17:35:46
好帮手慕粉 2019-12-03 10:53:52

同学你好,关于同学的问题解答如下:

1、因为代码是自上而下执行的,如果把获取元素的代码放到点击事件外部的话,就只会在第一次代码执行的时候获取列表和创建新的li标签,也就是只会执行一次,而放在btn1事件里面的话,那么点击一次就可以动态获取一次,也可以创建新的li标签。所以放在不同的位置效果是不一样的。

2、同学没有实现鼠标移入和移出的效果,建议同学再补充一下。使用onmouseover和onmouseout实现。

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师