美文网首页
任务22 DOM、事件-代码题

任务22 DOM、事件-代码题

作者: GarenWang | 来源:发表于2016-11-20 19:17 被阅读0次

1.有如下代码,要求当点击每一个元素li时控制台展示该元素的文本内容。不考虑兼容

//方法1
var ct=document.getElementsByClassName("ct");
var li=document.getElementsByTagName("li");
for(var i=0;i<li.length;i++){
    li[i].onclick=function(){
        console.log(this.innerText);
    }
}
//方法2 绑定在父亲上
  var ct=document.getElementsByClassName("ct")[0];
  // 注意此处的[0]必须要有,不然没有效果;
   ct.onclick=function(e){
    console.log(e.target.innerText);
  }
  //方法3
   var liArr=document.getElementsByClassName("ct")[0].getElementsByTagName("li");
  var handler=function(){
console.log(this.innerText);
}
 for(var i=0;i<liArr.length;i++){
liArr[i].addEventListener('click',handler,false)
}

jsbin链接

2.补全代码,要求:
当点击按钮开头添加时在<li>这里是</li>元素前添加一个新元素,内容为用户输入的非空字串;当点击结尾添加时在<li>前端6班</li>后添加用户输入的非空字符串.当点击每一个元素li时控制台展示该元素的文本内容。

  <ul class="ct">
<li>这里是</li>
<li>饥人谷</li>
<li>前端6班</li>
</ul>
<input class="ipt-add-content" placeholder="添加内容"/>
<button id="btn-add-start">开头添加</button>
<button id="btn-add-end">结尾添加</button>
<script type="text/javascript">
var     ul=document.getElementsByClassName("ct")[0];
var  liArr=document.getElementsByClassName("ct")[0].getElementsByTagName("li");
var text=document.querySelector(".ipt-add-content");
var addStart=document.getElementById("btn-add-start");
var addEnd=document.getElementById("btn-add-end");

ul.addEventListener("click",function(e){    //当点击每一个元素li时控制台展示该元素的文本内容
    console.log(e.target.innerText);
});
    addStart.onclick=function(){
        var newLi=document.createElement("li");
        newLi.innerHTML=text.value;
        ul.insertBefore(newLi,ul.children[0]);
    }
    addEnd.onclick=function(){
        var newLi=document.createElement("li");
        newLi.innerHTML=text.value;
        ul.appendChild(newLi);
    };
</script>

jsbin链接

3.补全代码,要求:当鼠标放置在li元素上,会在img-preview里展示当前li元素的data-img对应的图片

<ul class="ct">
<li data-img="http://cdn.jirengu.com/book.jirengu.com/img/11.jpg">鼠标放置查看图片1</li>
<li data-img="http://cdn.jirengu.com/book.jirengu.com/img/13.jpg">鼠标放置查看图片2</li>
<li data-img="http://cdn.jirengu.com/book.jirengu.com/img/14.jpg">鼠标放置查看图片3</li>
</ul>
 <div class="img-preview"></div>
<script>
//方法1,事件代理绑定父容器
var ul=document.querySelector(".ct");
var div=document.querySelector(".img-preview");
ul.addEventListener('mouseover',function(e){
    var img=e.target.getAttribute("data-img");
    div.innerHTML='<img src="'+img+'">';
});
//方法2绑定li元素
var li=document.querySelectorAll("li");
var div=document.querySelector(".img-preview");
for(var i=0;i<li.length;i++){
    li[i].addEventListener('mouseover',function(){
        var img=this.getAttribute('data-img');
        div.innerHTML='<img src="'+img+'">'
    });
};

JSbin链接

4.实现如下图Tab切换的功能
jsbin链接

5.实现下图的模态框功能
jsbin链接

相关文章

  • 任务22 DOM、事件-代码题

    1.有如下代码,要求当点击每一个元素li时控制台展示该元素的文本内容。不考虑兼容 jsbin链接 2.补全代码,要...

  • 任务22 DOM、事件

    dom对象的innerText和innerHTML有什么区别?innerText:获取节点里的所有文本;inner...

  • 任务22-Dom、事件

    问答 1. dom对象的innerText和innerHTML有什么区别? innerText是一个可写属性,返回...

  • 任务22-Dom、事件

    问答 dom对象的innerText和innerHTML有什么区别?innerText是一个可写属性,返回元素内包...

  • 任务22-Dom、事件

    问答题 1、dom对象的innerText和innerHTML有什么区别? innerText特性用来修改起始标签...

  • 任务22 DOM、事件-简答题

    1.dom对象的innerText和innerHTML有什么区别? innerText是一个可写属性,返回元素内包...

  • 宏任务与微任务

    宏任务:setTimeout和setInterval,Ajax,DOM事件微任务:Promise,async/aw...

  • 2020-11-24

    DOM事件模型 一、DOM事件流分为三个阶段 拿下面代码为例子 事件捕获:由外(xxx)向内(zzz)找监听函数 ...

  • DOM0级事件和DOM2级事件的区别

    1.DOM0事件 1.1. DOM0级事件绑定 会存在覆盖的问题;下边的代码会把上边的代码覆盖1.2. 分为两种:...

  • 2018-07-15

    DOM中的函数 鼠标移入移出实例 HTNL代码 js代码 点击事件实例 HTML代码 js代码

网友评论

      本文标题:任务22 DOM、事件-代码题

      本文链接:https://www.haomeiwen.com/subject/zkpepttx.html