JS的属性 节点

//获取父元素
/**

  • 1、获取一个元素(子元素)
  • 2、通过这个元素找其父元素
    */

// let navEle = document.getElementsByTagName(“nav”)[0];
// console.log(navEle);
// //书写格式:子元素.parentNode
// let headerEle = navEle.parentNode;
// console.log(headerEle);

/**

  • 获取子元素节点
  • 书写格式:父元素.children
    */
    // let Eles1 = headerEle.children;
    // console.log(Eles1);

/**

  • 获取子节点(元素、文本、注释)
  • 书写格式:父元素.childNodes
    */
    // let Eles2 = headerEle.childNodes;
    // console.log(Eles2);

// //获取第一个子节点
// let FEles = headerEle.firstChild;
// console.log(FEles); //#text
// //获取第一个子元素节点
// FEles = headerEle.firstElementChild;
// console.log(FEles); //


// //获取最后一个子节点
// let LEles = headerEle.lastChild;
// console.log(LEles); //#text
// //获取最后一个子元素节点
// LEles = headerEle.lastElementChild;
// console.log(LEles); //

“123”

//添加或替换元素内容
// let divEle = document.getElementsByTagName(“div”)[0];
/**

  • 元素节点.innerText = “添加的内容”
  • 元素节点.innerHTML = “添加的内容”
  • 【innerText和innerHTML区别】
  • innerHTML可以识别字符串中的标签,并转换为子元素
  • innerText不识别标签
  • 即会把标签以字符串形式添加到元素内容中展示
  • 注:若原标签有内容,以上两个属性均为替换
    */

// divEle.innerText = “F70”;
// divEle.innerHTML = “F70”;

/**

  • 【添加元素节点】
  • 1、创建新节点
  • -创建元素节点
  • -创建文本节点
  • -把文本节点添加到元素节点中
  • 2、把新创建的节点添加到页面
  • -获取被添加的元素节点
  • -把新元素节点添加为其子节点

*/
//【创建新节点】
//创建元素节点
// let pEle = document.createElement(“p”);
// //创建文本节点
// let pText = document.createTextNode(“F70”);
// //把文本节点添加到元素节点中
// pEle.appendChild(pText);
//【把新创建的节点添加到页面】
// //获取被添加的元素节点
// let fooEle = document.getElementsByTagName(“footer”)[0];
// //把新元素节点添加为其子节点
// fooEle.appendChild(pEle);

//【插入节点】
//创建插入元素节点
// let liEle = document.createElement(“li”);
// //创建插入元素节点的文本内容
// liEle.innerText = “A”;
// //获取插入节点的父元素
// let olEle = document.querySelector(“ol”);
// //获取被插入的节点
// let inEle = olEle.children[2];

/**

  • 【插入节点】
  • 需要获取:父元素、插入的节点、插入哪个节点之前
  • 父元素.insertBefore(A,B)
  • 功能:A插入到B之前
  • A为要插入的节点
  • B为插入哪个节点之前
  • 注:若A为新增节点,则直接插入。
  • 若A为原有节点,则为移动(剪切)。

*/
//新增节点
// olEle.insertBefore(liEle, inEle);
//原有节点
// let ulEle = document.querySelector(“ul”);
// ulEle.insertBefore(ulEle.children[3], ulEle.children[1]);

//【删除节点】
// let spanEle = document.querySelectorAll(“span”)[1];

/**

  • 节点.remove();
  • 注:如果该节点拥有子节点或后代元素会一同删除。
    */
    // function del() {
    // // spanEle.remove();
    // spanEle.parentNode.remove();
    // }

//【克隆节点】
// let spanEle = document.querySelectorAll(“span”)[1];
// let pEle = spanEle.parentNode;
// let secEle = document.querySelector(“section”);

/**

  • 书写格式:克隆节点.cloneNode(布尔值)
  • 布尔值:
  •   false 浅克隆  只复制克隆节点(即没内容的标签)
    
  •   true  深克隆  即会把子节点一同复制
    
  • 例如:
  • 深克隆 spanEle.cloneNode(true)
  • 浅克隆 spanEle.cloneNode(false)
    */
    // function kelongs() {
    // let newNode = spanEle.cloneNode(true);
    // secEle.appendChild(newNode);
    // }

// function kelongp() {
// let newNode = pEle.cloneNode(true);
// secEle.appendChild(newNode);
// }

//[替换节点]
//获取被替换节点
// let pEle = document.getElementsByTagName(“p”)[1];
//创建被替换节点
// let spanEle = document.createElement(“span”);
// let spanText = document.createTextNode(“ABC”);
// spanEle.appendChild(spanText);

// function replaceC() {
// //获取被替换节点的父元素
// /**
// * 替换元素书写格式:
// *
// * 父元素.replaceChild(新节点, 旧节点);
// * 注:旧节点为被替换的元素。
// * 父元素也是被替换节点的父元素
// */
// pEle.parentNode.replaceChild(spanEle, pEle);
// }

//设置节点的样式
// let divEle = document.querySelector(“div”);
// //获取节点的尺寸(不包含border和margin)
// console.log(“divWidth:”, divEle.clientWidth); //100
// console.log(“divheight:”, divEle.clientHeight); //100
// let spanEle = document.querySelector(“span”);
// //设置节点样式
// spanEle.style.left = ${divEle.clientWidth}px;
// spanEle.style.color = “yellowgreen”;
// //css中属性的-需要去掉,后面单词的首字母大写
// spanEle.style.backgroundColor = “yellowgreen”;

//【创建注释节点】
// let comEle = document.createComment(“我是注释内容”);
// let spanEle = document.getElementsByTagName(“span”)[0];
// spanEle.parentNode.insertBefore(comEle, spanEle);

//【获取和添加属性节点】
// let divEle = document.getElementsByTagName(“div”)[0];
/**

  • 获取属性节点的值
  • 书写格式:元素节点.getAttribute(属性名)
  • */
    // let claValue = divEle.getAttribute(“class”);
    // console.log(claValue); //box
    // //由于class关键字,会冲突因此获取类名用className这个属性
    // console.log(divEle.class); //un
    // console.log(divEle.className); //box

/**

  • 设置属性节点(新增、修改)
  • 书写格式:元素节点.setAttribute(属性名,属性值)
  • /
    // divEle.setAttribute(“name”, “F71”);
    /
    *
  • 删除属性节点
  • 书写格式:元素节点.removeAttribute(属性名)
  • */
    // divEle.removeAttribute(“name”);

//查找属性
// let F70 = divEle.hasAttribute(“class”);
// console.log(F70);

//【扩展】
//【设置属性节点的快捷方式】
//获取节点的类名 节点名.className
// console.log(divEle.className);

//给label节点设置for值
// let labelEle = document.querySelector(“label”);
// labelEle.htmlFor = “F70”;

// let inputEle = document.querySelector(“input”);
// inputEle.type = “checkbox”;

//自定义属性节点
/**

  • 获取自定义属性节点的值
  • 书写格式:
  • 节点名.dataset.自定义名
    */
    // let info = inputEle.dataset.abc;
    // console.log(info);
    // //更改自定义属性节点的值
    // inputEle.dataset.abc = “F70”;

// let secEle = document.querySelector(“section”);
// console.log(secEle.className, typeof secEle.className);
/**

  • 获取节点的class值(多个值以类数组方式存储)
  • 书写格式:节点名.classList
  • 获取某个值 节点名.classList[0]
    */
    //保留愿节点的class值,在其基础上添加新的类名
    //书写格式:节点名.classList.add(属性值)
    // secEle.classList.add(“box3”);

//查找class值
// secEle.classList.contains(“box3”);

//[切换] 如果节点有小括号class的值就删除,反之添加
//注:该方法返回Boolean值,添加true,删除false
// let spanEle = document.querySelector(“span”);
// spanEle.classList.toggle(“sxg”);
// spanEle.classList.toggle(“sxg”);

//删除class值
// spanEle.classList.remove(“sxg”);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值