JS(Dom操作)第十八课

简介: JS(Dom操作)第十八课

JS(Dom操作)第十八课

1 文档对象

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <style>
    </style>
    <!-- Dom文档对象的内容信息 -->
    <h1><a href="#" id="a1">我是链接的标签</a></h1><br>
    <form name="forml">
    </form><br>
    <input type="button" name="btn1" value="动态的内容信息" onclick="addinput()"><br>
    <input type="text" id="txt" value="123444"><br>
    <input type="button" name="btn1" value="修改信息" onclick="Uappinput()"><br>
    <!-- 鼠标为单机是变色 -->
    <script>
    </script>
</body>
</html>

       // 用户单机鼠标是颜色改变
        var domEl=document.querySelector("h1")
        document.linkColor="black"
        document.alinkColor="green"
        document.vlinkColor="yellow"
        // 获取地址
        document.write(document.URL)
        // 动态增加一个标签
    function addinput(){
        var tex=document.createElement("input");
        tex.type='text';
        tex.name="我是文本的内容";
        tex.value="动态的文本框"
        document.forml.appendChild(tex)
    }
    function Uappinput(){
        var  cc=document.getElementById("txt");
        cc.value="修改后的内容信息为"
    }
    // document.bgColor="yellow";
    document.fgColor="red";
    document.URL="index.html"

2 attribute的操作增删改查

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>attribute的操作</title>
    <!-- 增加 修改 删除 判断  查询 -->
</head>
<body>
    <div class="box" id="main" name="wer" sex="男" age="67" data-srt="我较上周"></div>
    <script>
    </script>
</body>
</html>

         // 获取元素的值的属性值
        var classEl = document.querySelector('#main')
        // 控制台打印输出
        console.log(classEl)
        // 判断该属性是否age存在
        var flag = classEl.hasAttribute("age")
        console.log(flag)
        var flag1 = classEl.hasAttribute("name")
        console.log(flag1)
        // 获取某个值
        var name = classEl.getAttribute("name")
        console.log(name)
        var age = classEl.getAttribute("age")
        console.log(age)
        // 自己定义的属性 data-*
        var srt = classEl.getAttribute("srt")
        console.log(srt)
        // 设置元素的值
        var setName = classEl.setAttribute("setName", "我是设置的元素值")
        var getName = classEl.getAttribute("setName")
        console.log("获取姓名为"+getName)
        // 设置元素的值二
        var setWeight=classEl.setAttribute("setWeight","我的体重200kg")
        // 获取元素的值
        var getWeight=classEl.getAttribute("setWeight")
        console.log("获取体重的值"+getWeight)
        // 删除属性值元素
        var delteName = classEl.removeAttribute("setName")
        console.log(delteName)
        var attrs =classEl.attributes  //获取所有的属性
        console.log(attrs)
        for (var item of attrs) {
            console.log(item)
        }
        // 
        console.log(classEl.className)
        console.log(classEl.id)

3  classlist使用 对类进行增删改查

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>动态的style样式的增删改查</title>
    <style>
        button{
            width: 200px;
            height: 200px;
            background-color: bisque;
        }
        .mystyle {
            width: 500px;
            height: 50px;
            padding: 15px;
            border: 1px solid black;
        }
        .anotherClass {
            border: 1px solid red;
            background-color: lightblue;
            color: white;
        }
        .thirdClass {
            text-transform: uppercase;
            text-align: center;
            font-size: 25px;
        }
        .newClassName{
            background-color: darkturquoise;
            color: red;
            height: 300px;
            width: 200px;
        }
    #id{
      overflow: hidden;
    }
    </style>
</head>
<body>
    <a onclick="insertinto()">点我我是一个增加class选择器的类名</a>
    <div id="myDIV">123 </div>
    <script>
    </script>
</body>
</html>

  function insertinto() {
            // 增加一个类名
            document.getElementById("myDIV").classList.add("mystyle", "anotherClass", "thirdClass");
            alert("增加几个类名")
            var all = document.querySelector("#myDIv")
            removes()
        }
        function removes() {
            document.getElementById("myDIV").classList.remove("mystyle");
            alert("删除的元素thirdClass")
            toggle()
        }
        function toggle(){
            document.getElementById("myDIV").classList.toggle("newClassName");
            // 调用函数
            contains()
        } 
        function contains(){
            var x = document.getElementById("myDIV").classList.contains("anotherClass");
            console.log(x)
            var y = document.getElementById("myDIV").classList.contains("mystyles");
            console.log(y)
        }

4 window对象

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
</script>
</body>
</html>

        window.document.write("我是文档的对象内容")
        window.confirm("我是开始的内容信息")
        window,prompt("请输入我的个人信息为")
        window.alert("弹出内容信息")
        var bool=window.confirm("关闭窗口")
        // if(bool==true){
            // Window.close();
        // }
    </script>
    <script>
        function pop(){
            var message=document.getElementById("message");
            message,value=window.prompt(message.value,"返回信息的内容")
        }
    </script>
    <input type="text" id="message" size="40" value="请输入信息的内容">
<input type="button" value="显示对话信息" οnclick="pop()">
<!-- 打开窗口 -->
   var sd= window.open("window.html","new","height=200,width=800,top=100")
    var fgh=window.open("attribute的操作.html","new","height=400,width=800", "scrollbars","resizable","menubar")

5 自己定义的属性操作

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <!-- 自己定义的属性值 -->
    <div class='box' data-name="why"  data-age="23">我是属性值的内容信息</div>
    <script>
    </script>
</body>
</html>

  var boxEl=document.querySelector(".box")
        console.log(boxEl.age)
        console.log(boxEl.name)
        console.log(boxEl.dataset.name)
        console.log(boxEl.dataset.age)

6 创建元素的信息

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<style>
    .box {
        width: 300px;
        height: 400px;
        margin: auto;
        border: 1px solid rgb(245, 6, 6);
    }
</style>
<body>
    <div class="box">我是元素的信息内容介筛</div>
    <script>
    </script>
</body>
</html>

         var doxClass = document.querySelector('.box')
        console.log(doxClass)
        var addH1 = document.createElement("h2")
        addH1.innerHTML = "我是标题元素信息内容"
        addH1.classList.add("div")
        doxClass.append(addH1)
        var addH2 = document.createElement("h1")
        addH2.innerHTML = "我是标题元素信息内容h1";
        addH2.classList.add("div")
        doxClass.append(addH2)  //在元素的前面
        doxClass.after(addH2)   //在元素的后面
        doxClass.before(addH2)  //在node元素的前面
        doxClass.replaceWith(addH1, "123") //替换元素

7  滚动的案例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=sc, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div class="box">我是元素的信息内容介筛</div>
    <script>
    </script>
</body>
</html>

 //window的属性,大部分都是只读的,不支持设置,这里也就不一一分析。使用的时候window全部作为只读看待,不要设置。
//为了简便,除非特殊说明,此文档中的document.body代表元素(标签)
//一些需要兼容地方,也都有体现,没有过多解释。
/*获取常用对象:这里的每个对象都是一个完整的体系,都要掌握*/
var a=document.querySelector("div")
console.log(a)
/*获取大小、位置、滚动条*/
    //获取浏览器相对于屏幕的坐标
    var b=    window.screenLeft;/*window.screenX;*/
    console.log(b)
    var c=    window.screenTop;/*window.screenY;*/
    console.log(c)
    //获取窗口大小:对应三大家族记忆
        //offset:获取元素的总大小---获取元素相对于位置
        var d=    document.body.offsetHeight
        var e=    document.body.offsetWidth
        var f=    document.body.offsetTop
        var g=    document.body.offsetLeft
        var h=    document.body.offsetParent
        console.log(d+"_"+e+"_"+f+"_"+g+"_"+h)
        //获取窗口的外部高度(包含工具条与滚动条)
        var i=    window.outerHeight
        var j=    window.outerWidth
        //scroll:获取元素内容的实际大小----获取元素的滚动距离
        var k=    document.body.scrollHeight
        var l=    document.body.scrollHeight
        //获取窗口的文档显示区的大小----获取窗口的滚动距离(内部高度)
        var o=    window.innerHeight
        var p=    window.innerWidth
        var q=    window.pageXOffset;/*IE*/ 
        var x=    window.pageYOffset
            //IE下使用html的滚动距离代替window的滚动
        var aa=    document.documentElement.scrollTop
            document.documentElement.scrollLeft
/*测试*/
setInterval(function(){
    document.write("我是元素<br>")
},5000)

8 理解

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    .week{
      background-color: rgb(0, 164, 230);
    }
    .date{
      width: 100px;
      height: 100px;
      border: 1px solid rgb(128, 0, 255);
      border-radius: 50%;
    }
  </style>
</head>
<body>
  <div class="box" id="frist" data-age="123" data-abc="dsad">
    我是元素的内容信息
  </div>
  <p class="date" style="background-color: rgb(247, 255, 180);">
    newClassName
  </p>
  <span>
    东东
  </span>
  <button>按钮</button>
  <script>
    var divEl = document.querySelector("div")
    var pEl = document.querySelector("p")
    // 通过style修改样式
    divEl.style.backgroundColor = "red" 
    pEl.className = "week" // 覆盖所有类名
    pEl.classList.add("week") // 添加类名 不会覆盖类名
    // setTimeout 延迟执行的时间 1000 秒后 删除的 内容是
    setTimeout(function(){ // 延迟执行
      pEl.classList.remove("week") //删除一个类名
      console.log(12);
    },1000)
    // 获得这个元素的按钮 为 button
    var btn = document.querySelector("button")
    // 通过button的点击事件来执行
    btn.onclick=function(){
      pEl.classList.toggle("week")  // 类名存在就移除,类名不存在就添加
      var flag = pEl.classList.contains("week") //  判断某个类名是否存在
      console.log(flag ? "存在":"不存在");
    }
    pEl.style.width = "200px"
    pEl.style.backgroundColor = "yellows"
    pEl.style.cssText = `height:200px;
      background-color: gray;
      width:200px;`
    // 设置多行的样式属性,覆盖原本的内联style
    pEl.style.display = "" // 使用默认值
    console.log(pEl.style.width); // 只能获取内联style属性
    console.log(getComputedStyle(pEl).width); // 元素的任意属性
    console.log(divEl.getAttribute("class"));
    divEl.setAttribute("class",false)
    console.log(divEl.className); // 通过property获取class的值
    // console.log(divEl.id); // 通过property获取id的值
    // console.log(divEl.age); // 通过property获取非标准的attributes的值
    // console.log(divEl.abc); // 通过property获取非标准的attributes的值
    // divEl.className = "boxName" // 通过property方式修改attributes的值
    // console.log(divEl.dataset.age); // data-*方式
    // console.log(divEl.dataset.abc); // data-*方式
    // divEl.setAttribute("class","atrrBox")
    // console.log(divEl.getAttribute("class"));
  </script>
</body>
</html>

相关文章
|
1天前
|
缓存 JavaScript 前端开发
【JavaScript 技术专栏】DOM 操作全攻略:从基础到进阶
【4月更文挑战第30天】本文深入讲解JavaScript与DOM交互,涵盖DOM基础、获取/修改元素、创建/删除元素、事件处理结合及性能优化。通过学习,开发者能掌握动态改变网页内容、结构和样式的技能,实现更丰富的交互体验。文中还讨论了DOM操作在实际案例、与其他前端技术结合的应用,助你提升前端开发能力。
|
2天前
|
前端开发 JavaScript 数据安全/隐私保护
前端javascript的DOM对象操作技巧,全场景解析(二)
前端javascript的DOM对象操作技巧,全场景解析(二)
|
2天前
|
移动开发 缓存 JavaScript
前端javascript的DOM对象操作技巧,全场景解析(一)
前端javascript的DOM对象操作技巧,全场景解析(一)
|
2天前
|
JavaScript 前端开发 开发者
【Web 前端】如何操作DOM元素?
【4月更文挑战第22天】【Web 前端】如何操作DOM元素?
|
2天前
|
JavaScript 前端开发
JavaScript DOM 文档对象模型(获取、改变html元素)
JavaScript DOM 文档对象模型(获取、改变html元素)
|
2天前
|
存储 缓存 JavaScript
【Web 前端】JS哪些操作会造成内存泄露?
【4月更文挑战第22天】【Web 前端】JS哪些操作会造成内存泄露?
|
5天前
|
JavaScript 前端开发
js操作字符串的相关方法
js操作字符串的相关方法
9 3
|
5天前
|
JavaScript 前端开发
js 操作数组的方法
js 操作数组的方法
15 4
|
6天前
|
JavaScript
js_操作dom(委托和冒泡事件)
js_操作dom(委托和冒泡事件)
8 0
|
28天前
|
缓存 JavaScript 前端开发
JavaScript中DOM操作:新手常犯错误与避免策略
【4月更文挑战第1天】本文介绍了JavaScript中DOM操作的基础和新手常犯错误,包括频繁查询DOM、不恰当的遍历、滥用innerHTML、忽视异步与DOM状态以及过度同步更新。建议包括缓存DOM引用、注意文本节点、慎用innerHTML以防止XSS、正确处理异步和批量更新。遵循最佳实践,开发者能提升代码质量和应用性能。
24 2