JavaWeb—js(3)

发布于:2024-07-10 ⋅ 阅读:(172) ⋅ 点赞:(0)

Bom

dom: document object model(文档对象模型),
是处理html、xml的标准编写接口。

节点和元素

整个页面也就是整个文档我们称之为文档节点; 

文档节点使用document来表示; 

页面中的所有标签我们称之为元素,使用element来表示; 

如此处的文本、属性、注释等,我们称之为节点,使用node进行表示;即注释也叫注释节点、文 本也叫文本节点、属性也叫属性节点;元素也可以称为元素节点。 

获取元素对象

 /*
    通过document 对象 获取元素
    */

    //通过id获取元素对象 传入id的名称
    //id不能重复
    let div =  document.getElementById('one');
    console.log(div)


    // 通过class名获取元素对象 返回的是一个数组
    //如果要去操作具体的对象,需要通过索引获取到对象
    let div2 = document.getElementsByClassName('box1');
    console.log(div2)


    //通过标签的名称获取元素对象 返回一个数组
   let liList= document.getElementsByTagName('li');
    console.log(liList)


    //通过name属性的值获取元素 返回一个数组 (了解)
    let nameList = document.getElementsByName('dzh');
    console.log(nameList)


    //通过选择器获取一个元素对象
   let box1 =  document.querySelector('.box1');
   console.log(box1)

   //通过选择器获取多个元素对象
   var box2= document.querySelectorAll('div');
   console.log(box2)

操作文本超文本

// 通过class名获取元素对象 返回的是一个数组
    //如果要去操作具体的对象,需要通过索引获取到对象
    let div = document.getElementsByClassName('box1');
    console.log(div)


    console.log(div[0].innerText)

    //操作元素的文本内容
    // div[0].innerText=' <span>我是span</span>';

    //操作元素的 超文本内容
    div[0].innerHTML='<span class="one">我是span</span>'

操作对象的属性

id和class


    //操作元素对象的属性
    // 对象名.属性名
    console.log(div.id)
    div.id='two';
 

    //操作类名

    console.log(div.className)

    //覆盖class名
    // div.className='box2'


    // 添加类名
    div.classList.add('box2')

    // 删除类名
    // div.classList.remove('')

    //替换类名
    // div.classList.replace('')

操作自定义属性

//获取到所有的li 给每一个li添加一个唯一的index标识

   let liList= document.getElementsByTagName('li');
    for (let i = 0; i < liList.length; i++) {
        const element = liList[i];
        
        // 设置属性名和属性值
        element.setAttribute('index',i)

        console.log(element.getAttribute('index'))
    }

 

操作元素行内样式

  //设置当前元素的行内样式
        div.style.color='red';
        div.style.width='100px';
        div.style.height='100px'

        // font-size   fontSize  background-color backgroundColor
        div.style.backgroundColor='green';

获取元素的外部样式

  //获取元素的外部样式
        console.log(window.getComputedStyle(div).backgroundColor)
        console.log(window.getComputedStyle(div).width)

操作checkbox的checked属性

//先判断 有没有选中
        if(checkbox.checked){
            //如果是选中 就取消选中
            checkbox.checked=false;
            btn.innerText='点击选中'

        }else{
            checkbox.checked=true;
            btn.innerText='点击取消选中'
        }

节点操作

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>

    <button onclick="del()">删除</button>
    <button onclick="replace()">替换</button>
    

</body>
<script>

    // 创建一个元素节点 传入元素的名称
   let div =  document.createElement('div');
   div.style.width='100px'
   div.style.height='100px'
   div.style.backgroundColor='red'


   //创建文本节点, 等同于 innerText属性
//    let text = document.createTextNode('我是div');
//    div.appendChild(text)
div.innerText='我是div'
   console.log(div)

   //获取到body标签的对象
   let body = document.querySelector('body');
   console.log(body)

   //追加子节点
   body.appendChild(div)


   function del(){

        //点击按钮 删除div节点
        //前提需要有这个节点,否则会报错
        body.removeChild(div)
   }


   function replace(){
    //点击按钮 将原来的div节点 替换成 span节点
   let span= document.createElement('span');
   span.style.color='pink';
   span.style.fontSize='25px'
   span.innerText='我是span'

   //(插入的节点,被替换的节点) 
   //要保证 被替换节点存在
   body.replaceChild(span,div)

   }


   //查看当前元素的所有子节点
 let childList = body.childNodes
 console.log(childList)
</script>
</html>

 

 

 

 

 

 

 

 


 

 

 


网站公告

今日签到

点亮在社区的每一天
去签到