javascript的DOM操作

2019-03-15  本文已影响0人  原上的小木屋

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

<ul class="ct">
    <li data-img="1.png">鼠标放置查看图片1</li>
    <li data-img="2.png">鼠标放置查看图片2</li>
    <li data-img="3.png">鼠标放置查看图片3</li>
</ul>
<div class="img-preview"></div>
<script>
//你的代码
</script>
    var sele_img=document.querySelector(".ct")
    var sele_imgpre=document.querySelector(".img-preview")
    sele_img.addEventListener('mouseover',function(e){
        sele_imgpre.innerHTML=' '
        var image=document.createElement('img')
        imgurl= e.target.getAttribute('data-img')
        image.setAttribute("src",imgurl)
        sele_imgpre.appendChild(image)})

补全代码,要求:

<ul class="ct">
  <li>这里是</li>
  <li>飞天虎</li>
  <li>大天堂</li>
</ul>
<input class="ipt-add-content" placeholder="添加内容"/>
<button id="btn-add-start">开头添加</button>
<button id="btn-add-end">结尾添加</button>
<script>
//你的代码
</script>
    var ipt = document.querySelector(".ipt-add-content")
    var start = document.querySelector("#btn-add-start")
    start.addEventListener('click',function(){if(ipt.value){var li = document.createElement('li'); li.innerText=ipt.value;sele_li.insertBefore(li,sele_li.firstChild)}})
    var end = document.querySelector("#btn-add-end")
    end.addEventListener('click',function(e){if(ipt.value){var li = document.createElement('li'); li.innerText=ipt.value;sele_li.appendChild(li)}})
    var sele_li = document.querySelector(".ct")
    sele_li.addEventListener('click',function(e){console.log(e.target.innerText)})

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

<ul class="ct">
    <li>这里是</li>
    <li>飞天虎</li>
    <li>大天堂</li>
</ul>
<script>
//todo ...
</script>
var sele_li = document.querySelector(".ct")
sele_li.addEventListener('click',function(e){console.log(e.target.innerText)})

解释DOM2事件传播机制。

onlick与addEventListener的区别?

  1. onclick事件在同一时间只能指向唯一对象
  2. addEventListener给一个事件注册多个listener
  3. addEventListener对任何DOM都是有效的,而onclick仅限于HTML
  4. addEventListener可以控制listener的触发阶段,(捕获/冒泡)。对于多个相同的事件处理器,不会重复触发,不需要手动使用removeEventListener清除
  5. IE9使用attachEvent和detachEvent

如何创建元素?如何添加元素?

创建元素

  1. createElement()
  1. createTextNode()
  1. createDocumentFragment()
  1. appendChild()
  1. insertBefore()
  1. replaceChild()

列出DOM 元素选取的 API。

  1. getElementById()
  1. getElementsByClassName()
  1. getElementsByTagName()
  1. getElementsByName()
  1. querySelector()
  1. querySelectorAll()

写一个函数,批量操作 css。

function css(node, styleObj) {
     //for-in 遍历对象
     for (var key in styleObj) {
          node.style[key] = styleObj[key]
     }
}

如何获取 DOM 计算后的样式?

  1. 获取样式 getComputedStyle
var node = document.querySelector('p')
var color = window.getComputedStyle(node).color
console.log(color)

getComputedStyle与style区别

  1. 只读和可写
  1. 获取对象的范围
  1. getComputedStyle和currentStyle区别

一个实现切换的demo

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>task6</title>
    <style>
        .box{
            margin:10px 0;
            padding: 10px;
            border:1px solid #ddd;
            box-shadow: 2px 2px 2px 2px rgba(0,0,0,0.5)
        }
        .togg{
            background-color: #000;
            color: #fff;
        }
    </style>
</head>
<body>
    <div class="box">
        <h1>hello</h1>
        <p>batianhu</p>
    </div>
    <button id='add'>add</button>
    <button id='remove'>remove</button>
    <button id='toggle1'>toggle1</button>
    <button id='toggle2'>toggle2</button>

    <script>
        var box = document.querySelector('.box')
        var addbtn = document.querySelector('#add')
        addbtn.addEventListener('click',function(){box.classList.add('togg')})
        var removebtn = document.querySelector('#remove')
        removebtn.addEventListener('click',function(){box.classList.remove('togg')})
        var toggle1btn = document.querySelector('#toggle1')
        toggle1btn.addEventListener('click',function(){
            if(box.classList.contains('togg')){box.classList.remove('togg')}
            else{box.classList.add('togg')}
            })
        var toggle2btn = document.querySelector('#toggle2')
        toggle2btn.addEventListener('click',function(){box.classList.toggle('togg')})
    </script>
</body>
</html>
上一篇 下一篇

猜你喜欢

热点阅读