js中DOM三级列表(代码分享)

JS中DOM三级列表(代码分享)

在HTML中,可以通过嵌套使用<ul><li>标签来创建无序列表,也可以嵌套使用<ol><li>标签来创建有序列表。除此之外,还可以通过嵌套使用<dl><dt><dd>标签来创建说明列表。在JavaScript中,可以使用DOM操作来创建、修改和删除这些列表。

创建三级列表

首先,我们需要创建一个包含三级列表的HTML结构。代码如下:

<ul id="list">
  <li>
    <span>第一项</span>
    <ul>
      <li>
        <span>子项1</span>
        <ul>
          <li><span>孙子项1</span></li>
          <li><span>孙子项2</span></li>
        </ul>
      </li>
      <li><span>子项2</span></li>
    </ul>
  </li>
  <li><span>第二项</span></li>
  <li><span>第三项</span></li>
</ul>

该HTML结构包含一个id为list的无序列表,其中嵌套使用了三层<ul><li>标签。为了让列表更加清晰,我们使用<span>标签来包裹列表项的文本内容。

接下来,我们需要在JavaScript中获取该列表元素,并添加事件监听器,代码如下:

var list = document.getElementById("list");
list.addEventListener("click", handleClick);

在上面的代码中,我们使用document.getElementById方法获取id为list的元素,并使用addEventListener方法为它添加了一个click事件监听器,该监听器的回调函数是handleClick

现在,我们需要实现handleClick函数。该函数的作用是根据点击的元素类型,判断点击的是列表项还是列表项中的子元素,并在控制台输出相应的提示信息。代码如下:

function handleClick(event) {
  var target = event.target;
  if (target.tagName === "LI") {
    console.log("点击了列表项:" + target.firstElementChild.innerHTML);
  } else if (target.tagName === "SPAN") {
    console.log("点击了子元素:" + target.innerHTML);
  }
}

在上面的代码中,我们首先获取触发事件的元素,并使用tagName属性来判断该元素的标签类型。如果元素是一个<li>标签,说明点击的是列表项,我们可以通过firstElementChild属性获取该列表项的第一个子元素<span>,并使用innerHTML属性获取该元素的文本内容。如果元素是一个<span>标签,说明点击的是列表项中的子元素,我们可以直接使用innerHTML属性获取该元素的文本内容,并添加相应的提示信息到控制台中。

修改列表项

除了添加事件监听器外,我们还可以使用DOM操作来修改列表项。例如,我们可以为列表项添加一些样式,使其在被选中时呈现明显的高亮效果。代码如下:

function handleClick(event) {
  var target = event.target;
  if (target.tagName === "LI") {
    console.log("点击了列表项:" + target.firstElementChild.innerHTML);
    target.classList.add("active");
  } else if (target.tagName === "SPAN") {
    console.log("点击了子元素:" + target.innerHTML);
    target.parentNode.classList.add("active");
  }
}

在上面的代码中,我们使用了classList属性来为选中的列表项添加了一个名为active的类,以便对其进行样式设置。如果点击的是子元素,我们还需要使用该元素的parentNode属性获取其父节点(即列表项),然后对其进行样式设置。

总结

通过以上的示例,我们可以看到如何在JavaScript中使用DOM操作来创建、修改和删除三级列表。其中,添加事件监听器以及样式设置是比较常见的DOM操作。在实际应用中,我们还需要了解更多的DOM操作方法以及浏览器的兼容性问题,以便开发出更加高效和稳定的网页。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js中DOM三级列表(代码分享) - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • JS验证input输入框(字母,数字,符号,中文)

    这里给出JS验证输入框的完整攻略。我们需要以下步骤来完成验证: 获取输入框元素 给输入框元素绑定事件监听器,以便在输入内容时能够及时验证 在事件监听器的回调函数中,通过正则表达式对输入内容进行验证 根据验证结果,决定是否将输入内容存储到变量或者进行其他操作 下面我们详细分析每个步骤,以及提供两个示例。 步骤1:获取输入框元素 我们可以使用 document.…

    JavaScript 2023年6月10日
    00
  • javascript 中Cookie读、写与删除操作

    当我们在使用 JavaScript 进行网站开发时,常常需要使用到 Cookie,Cookie 可以用于保存一些用户信息、网站访问次数、用户偏好设置等数据。本文将详细介绍 JavaScript 中如何进行 Cookie 的读、写与删除操作。 Cookie 的读取 在 JavaScript 中,我们可以使用 document.cookie 读取当前网站的 Co…

    JavaScript 2023年5月19日
    00
  • JavaScript第一个分水岭之数组的基本操作

    JavaScript中的数组是一种非常常用的数据结构,可以用于存储和操作一组数据。学会数组的基本操作是学习JavaScript的第一个重要分水岭。下面是一份完整的攻略,包括数组的基本操作和示例说明。 创建数组 可以使用以下两种方式来创建一个数组: 直接创建 可以使用方括号来直接创建一个数组,数组中的元素使用逗号分隔。 var arr = [1, 2, 3, …

    JavaScript 2023年5月27日
    00
  • java NIO 详解

    Java NIO 详解 Java NIO(New IO)是一种基于缓冲区、非阻塞IO的API集,主要用于替代传统的Java IO API。它可以更高效地处理IO数据,具有更好的扩展性和灵活性,尤其适用于处理大量连接和请求的场景。 在本文中,我们将从以下几个方面对Java NIO进行详细讲解: 缓冲区(Buffer)及其操作 通道(Channel)及其操作 选…

    JavaScript 2023年5月28日
    00
  • 详谈javascript中DOM的基本属性

    当谈到JavaScript中的DOM(文档对象模型)时,我们需要了解DOM的基本属性。DOM是指在HTML文档中的每个元素都可以视为一个对象,而JavaScript可以用来访问和修改它们。 HTML元素的基本属性 HTML元素的基本属性通常可以通过查询DOM文档来找到。下面是访问HTML元素的基本属性的一些示例。 Element.innerHTML Elem…

    JavaScript 2023年6月10日
    00
  • php过滤HTML标签、属性等正则表达式汇总

    PHP过滤HTML标签、属性等正则表达式汇总 在开发网页或者Web应用的过程中,往往需要对用户提交的数据进行过滤和清理,以防止恶意脚本或病毒的注入,从而保证网站的安全性和稳定性。其中最常见的情况就是过滤HTML标签和属性。本文将介绍PHP中常用的过滤HTML标签、属性等的正则表达式汇总。 过滤HTML标签 PHP中可以使用正则表达式函数preg_replac…

    JavaScript 2023年6月11日
    00
  • JavaScript如何删除字符串中子字符串

    当我们想要删除字符串中的子字符串时,JavaScript提供了多种方案来实现。下面是一些方法和示例说明: 方法一:使用replace方法 JavaScript中的字符串有一个replace方法,可以方便地用来替换字符串中的内容。我们可以通过正则表达式在字符串中匹配需要删除的子字符串,并使用空字符串替换它,从而将它从字符串中删除。具体步骤如下: 1.定义一个字…

    JavaScript 2023年5月28日
    00
  • JS函数的几种定义方式分析

    接下来我将详细讲解JS函数的几种定义方式,包括函数声明、函数表达式、箭头函数和Function构造函数。每种定义方式都会详细介绍其特点、优缺点与示例说明。 函数声明 函数声明是JS中最基本的函数定义方式,采用function关键字来声明函数并为函数取一个名称,函数体内包含了要执行的代码。 function add(num1, num2) { return n…

    JavaScript 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部