HTML元素的操作

获取HTML的值

获取文本内容

1.先获取元素的内容

2.使用innerText方法

js 复制代码
    let btn = document.getElementById("btn");
    //获取文本内容
    console.log(btn.innerText);

设置文本内容

js 复制代码
btn.innerText= "测试数据";
let box = document.getElementById("box");

获取div中的html代码 innerHTML方法

js 复制代码
console.log(box.innerHTML);

将html代码 覆盖到div中

js 复制代码
//将html代码 覆盖到div中
box.innerHTML = "<h2>测试数据</h2>";
let a = document.getElementsByTagName("a");

更新HTML元素

创建html元素 createElement()

js 复制代码
 let ul = document.createElement("ul");

 let li1 = document.createElement("li");

创建文本节点 createTextNode()

js 复制代码
let text1 = document.createTextNode("列表项1");

将文本节点 追加到 li 节点中的末尾 appendChild()

js 复制代码
 li1.appendChild(text1);
 ul.appendChild(li1);
let li2 = document.createElement("li");

改变HTML中的元素

js 复制代码
<body>
<ul id="ul">
    <li id="first">列表1</li>
    <li>列表2</li>
    <li>列表3</li>
    <li id="last">列表4</li>
</ul>
<script>
    let ul = document.getElementById("ul");
    let first = document.getElementById("first");
    let last = document.getElementById("last");
    // 通过父级删除子集
    // ul.removeChild(first);
    //删除当前元素
    // first.remove();
    //替换内容
    // let repLi = document.createElement("li");
    // repLi.innerText = '列表项4的替换内容';
    // ul.replaceChild(repLi,last);

    let instLi = document.createElement("li");
    instLi.innerText = '列表项1前插入的内容';
    ul.insertBefore(instLi,first);

</script>
</body>

获取元素的父级

HTML部分

html 复制代码
<div id="box">
    <ul id="ul">
        <li><a href="#">列表项目1</a></li>
        <li id="two"><a href="#">列表项目2</a></li>
        <li><a href="#">列表项目3</a></li>
        <li><a href="#">列表项目4</a></li>
    </ul>
</div>

JavaScript根据ID获取元素部分

js 复制代码
let box = document.getElementById("box");
let ul = document.getElementById("ul");
let two = document.getElementById("two");

获取元素的父级

parentBode:parentNode 属性返回元素或节点的父节点

parentELement:parentElement 属性返回指定元素的父元素。

parentElementparentNode 的区别在于,如果父节点不是元素节点,则 parentElement 返回 null

js 复制代码
console.log(ul.parentNode);
console.log(ul.parentElement);

获取子集元素 包含 换行

childNodes: childNodes 返回包含指定节点的子节点的集合,该集合为即时更新的集合

children: children 属性返回元素的子元素的集合,根据子元素在元素中出现的先后顺序进行排序。使用 HTML Collection对象的 length属性获取子元素的数量,然后使用序列号(index,起始值为0)访问每个子元素。

children 属性与 childNodes 属性的差别:

  • childNodes 属性返回所有的节点,包括文本节点、注释节点;
  • children 属性只返回元素节点;
js 复制代码
console.log(box.childNodes);
console.log(box.children);

获取子集的第一个元素 包含换行

firstChild:选择属于其父元素的首个子元素的每个

元素,并为其设置样式;

firstElementChild: firstElementChild 属性返回指定元素的第一个子元素

firstElementChild 属性与 firstChild, 属性的区别在于 firstChild 返回第一个子节点作为元素节点,包含文本节点或注释节点(取决于哪个是第一个),而firstElementChild 返回第一个子节点作为元素节点(忽略文本和注释节点)。该属性是只读的。

js 复制代码
console.log(ul.firstChild);
console.log(ul.firstElementChild);

获取子集的最后一个元素 包含换行

lastChild:lastChild 属性返回指定节点的最后一个子节点,以 Node 对象。

lastElementChild:lastElementChild 属性返回指定元素的最后一个子元素。

lastElementChild 属性与 lastChild 属性的区别在于 lastChild 返回最后一个子节点作为元素节点,包含文本节点或注释节点(取决于哪个是最后一个),而 lastElementChild 返回最后一个子节点作为元素节点(忽略文本和注释节点)。该属性是只读的。

js 复制代码
      console.log(ul.lastChild);
      console.log(ul.lastElementChild);

获取当前元素的前一个元素

previousSibling:previousSibling 属性返回同一树级别的上一个节点,以 Node 对象。如果没有 previousSibling 节点,则返回值是 null

previousElementSibling:previousElementSibling 属性返回指定元素的前一个兄弟元素(相同节点树层中的前一个元素节点)

previousSibling 属性与 previousElementSibling 属性的差别:

  • previousSibling 属性返回元素节点之前的兄弟节点(包括文本节点、注释节点);

  • previousElementSibling 属性只返回元素节点之前的兄弟元素节点(不包括文本节点、注释节点);

    复制代码
        console.log(two.previousSibling);
        console.log(two.previousElementSibling);

获取当前元素的下一个元素

nextSibling:nextSibling 属性返回同一树级别上的下一个节点。nextSibling 返回下一个同胞节点:元素节点、文本节点或注释节点。元素之间的空白也是文本节点。

nextElementSibling:nextElementSibling 属性返回指定元素之后的下一个兄弟元素(相同节点树层中的下一个元素节点)。

nextSibling 属性与 nextElementSibling 属性的差别:

  • nextSibling 属性返回元素节点之后的兄弟节点(包括文本节点、注释节点)
  • nextElementSibling 属性只返回元素节点之后的兄弟元素节点(不包括文本节点、注释节点);
js 复制代码
      console.log(two.nextSibling);
      console.log(two.nextElementSibling);
相关推荐
开开心心就好1 小时前
批量提取PDF中的图片,直接导出原图
前端·javascript·支持向量机·智能手机·pdf·html·启发式算法
Setsuna_F_Seiei3 小时前
前端转型 Agent 开发 05 之 Agent Hooks 与 Checkpointer(让 Agent 从全自动转变人为可掌控)
前端·agent·ai编程
百万蹄蹄向前冲5 小时前
风扇转了一晚上MVP专家团翻车事故
前端·人工智能
默_笙5 小时前
🏛 给 AI 配一间办公室:Harness Engineering 六大模块与它的实现
前端·javascript
linux_cfan7 小时前
videojs v10 源代码系列解读:14 · 谓词守卫:在运行时安全地调用能力
前端·javascript·音视频
kyriewen7 小时前
我扒了 10,221 条 JD:腾讯技术岗 75% 在要 AI
前端·人工智能·ai编程
郑州光合科技余经理8 小时前
同城外卖小程序开发:下单成功后,后台导出能不能对上用户端状态
开发语言·前端·git·后端·uni-app·php·ai编程
IT_陈寒8 小时前
Vue的响应式让我熬到凌晨三点,原来漏了这个小细节
前端·人工智能·后端
Blanche15008 小时前
利用 RAG 为答疑机器人扩展知识范围
前端
天若有情6739 小时前
【纯前端小工具】公历生日转农历,批量查询每年农历生日对应的公历日期(GitHub Pages在线直接用)
前端·javascript·github pages·农历转换·lunisolar·网页小工具