节点操作案例6-动态生成列表

Posted jiumen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了节点操作案例6-动态生成列表相关的知识,希望对你有一定的参考价值。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <input type="button" value="按钮" id="btn">
  <div id="box"></div>

  <script src="common.js"></script>
  <script>
    var datas = [西施, 貂蝉, 凤姐, 芙蓉姐姐];
    // 点击按钮 动态创建列表,鼠标放上高亮显示
    my$(btn).onclick = function () 
      // 动态创建ul,内存中创建对象
      var ul = document.createElement(ul);
      // 把ul 放到页面上    把ul放到DOM树上,并且会重新绘制
      my$(box).appendChild(ul);

      for (var i = 0; i < datas.length; i++) 
        var data = datas[i];
        // 在内存中动态创建li
        var li = document.createElement(li);
        // 把li添加到DOM树,并且会重新绘制
        ul.appendChild(li);
        // 设置li中显示的内容
        // li.innerText = data;
        setInnerText(li, data);

        // 给li注册事件
        li.onmouseover = liMouseOver;
        li.onmouseout = liMouseOut;
      
    
    // 当鼠标经过li的时候执行
    function liMouseOver() 
      // 鼠标经过高亮显示
      this.style.backgroundColor = red;
    

    function liMouseOut() 
      // 鼠标离开取消高亮显示
      this.style.backgroundColor = ‘‘;
    

    // 设置标签之间的内容
    // function setInnerText(element, content) 
    //   // 判断当前浏览器是否支持 innerText
    //   if (typeof element.innerText === ‘string‘) 
    //     element.innerText = content;
    //    else 
    //     element.textContent = content;
    //   
    // 


    
  </script>
</body>
</html>

common中的内容

function my$(id) 
  return document.getElementById(id);


// 处理浏览器兼容性
// 获取第一个子元素
function getFirstElementChild(element) 
    var node, nodes = element.childNodes, i = 0;
    while (node = nodes[i++]) 
        if (node.nodeType === 1) 
            return node;
        
    
    return null;


// 处理浏览器兼容性
// 获取下一个兄弟元素
 function getNextElementSibling(element) 
    var el = element;
    while (el = el.nextSibling) 
      if (el.nodeType === 1) 
          return el;
      
    
    return null;
  


// 处理innerText和textContent的兼容性问题
// 设置标签之间的内容
function setInnerText(element, content) 
  // 判断当前浏览器是否支持 innerText
  if (typeof element.innerText === ‘string‘) 
    element.innerText = content;
   else 
    element.textContent = content;
  

 

以上是关于节点操作案例6-动态生成列表的主要内容,如果未能解决你的问题,请参考以下文章

C++程序中执行abort等操作导致没有生成dump文件的问题案例分析

Zookeeper--07---案例----服务器动态上下线

js练习6 --- DOM文本节点的操作动态脚本动态样式操作表格

❤️前端DOM笔记-删除事件,注册事件与冒泡⭐⭐⭐(附带动图案例)

js练习6 --- DOM文本节点的操作动态脚本动态样式操作表格

动态生成验证码案例(Java)