赞
踩
目录
模板字符串 可以换行 任意的嵌套的
- str += `
- <div class='box'>
- <img src="${obj.imgsrc}">
- <p>${obj.title}</p>
- </div>
- `
// 对于单引号 和双引号 都不可以换行 只能通过 + 进行拼接 // var str = "helloe " + "world"; // \ 转义符 把后边特殊符号做为一个普通字符串 或者 转义成换行 制表符健 // \n 换行 \t 4个空格 tab var str = "我要送你个\"惊喜\""; console.log(str); // 第一个\ 把第二个\转义成字符串 var path = "c:\\user\\desktop";
2.1直接利用innerHTML添加
- str = "";
- for (var obj of arr) {
- str += `
- <div>
- <img src=${obj.imgsrc}>
- <p>${obj.title}</p>
- </div>`
- document.querySelector("main").innerHTML = str;
- }
2.2 利用数组的join拼接实现
- str = "";
- var array = [];
- for (var i = 0; i < datas.length; i++) {
-
- var obj = datas[i];
- var str = `
- <div class='box'>
- <img src="${obj.imgsrc}">
- <p>${obj.title}</p>
- </div>
- `
- array.push(str);
- }
- document.querySelector("main").innerHTML = array.join("");
2.3创建div然后利用appendChild追加div
- for(var i =0; i< datas.length;i++){
- var obj = datas[i];
- var div = document.createElement("div");
- div.classList.add("box");
- div.innerHTML = `
- <img src="${obj.imgsrc}">
- <p>${obj.title}</p>
- `
- document.querySelector("main").appendChild(div);
- }
- <style>
- html,body{
- height: 100%;
- margin: 0;
- }
- .login {
- float: right;
- margin-right: 100px;
- width: 100px;
- line-height: 50px;
- text-align: center;
- border-radius: 20px;
- background: blue;
- color: white;
- }
- .mask {
- display: none;
- position: fixed;
- width: 100%;
- height: 100%;
- background: rgba(110, 110, 97, 0.5);
- }
- .box{
- width: 200px;
- height: 100px;
- background: white;
- position: absolute;
- top: 50%;
- left: 50%;
- transform: translate(-50%,-50%);
- }
-
- .box>span{
- float: right;
- margin-right: 20px;
- }
- </style>
- </head>
- <body>
- <div class="login">登录</div>
- <div class="mask">
- <div class="box">
- <span> X </span>
- </div>
- </div>
-
- <script>
- var btn = document.querySelector(".login");
- var mask = document.querySelector(".mask");
- var span = document.querySelector("span");
- btn.onclick = function () {
- mask.style.display = "block";
- }
- span.onclick = function () {
- mask.style.display = "none";
- }
- </script>
- </body>
4.补充内容
document.writeln,
- <div myname="test" class="name red">aaaaaa</div>
- <!-- 绑定事件的另外一种写法 "方法名()" 一定要记得加() -->
- <button onclick="btnclick()">点我</button>
- <script>
-
- // 移除 自定义属性
- var div = document.querySelector("div");
- div.removeAttribute("myname");
-
- // 查看元素是否拥有 某个自定义属性
- // true or false
- div.hasAttribute("myname");
-
-
- // 检查class列表中是否拥有某个值
- // true or false
- var contain = div.classList.contains("red");
- console.log(contain)
-
-
- function btnclick() {
- // 一般不用
- // 会覆盖页面中的内容
- // 不会换行
- // document.write("111111 <br> 2222");
-
- document.write("111111");
- document.write("222222");
-
-
- // writeln 可以实现换行
- // 配合 pre标签进行使用带有换行
- document.writeln("<pre>");
- document.writeln("111111");
- document.writeln("222222");
- document.writeln("</pre>");
-
- }
-
-
-
- </script>
- <div class="big">
- <img src="./imgs/1.jpg" alt="">
- </div>
- <div class="small">
- <img src="./imgs/1.jpg" alt="" class="active">
- <img src="./imgs/2.jpg" alt="">
- <img src="./imgs/3.jpg" alt="">
- <img src="./imgs/4.jpg" alt="">
- <img src="./imgs/5.jpg" alt="">
- </div>
- <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js"></script>
- <script>
-
- // ctrl +shift + p
- // 配置vscode 偏好设置的
- // 设置一下代码片段
-
-
- var imgs = document.querySelectorAll(".small img");
-
- var bigImg = document.querySelector('.big img');
-
-
- // 1.
- // for(let i =0;i < imgs.length;i++){
- // var smallImg = imgs[i];
- // smallImg.onclick = function () {
- // // 把点击的小图 src 赋值 大图
- // bigImg.src = this.src;
- // // 先把之前拥有class为active的全部 移除掉
- // for(var j = 0;j < imgs.length;j++){
- // imgs[j].classList.remove("active");
- // }
- // // 把点击的元素添加类名
- // this.classList.add("active");
- // }
- // }
-
- // 2
-
- // for (let i = 0; i < imgs.length; i++) {
- // var smallImg = imgs[i];
- // // 找一个中间变量 来记录当前高亮的
- // var previous = imgs[0];// 第一个高亮 指定第一个img对象
- // smallImg.onclick = function () {
- // // 当高亮和点击的是同一个元素时 不执行
- // if(previous == this)
- // return;
- // // 把点击的小图 src 赋值 大图
- // bigImg.src = this.src;
- // // 把点击的元素添加类名
- // this.classList.add("active");
- // // 把之前高亮的移除
- // previous.classList.remove("active");
- // // 改变高亮元素 为当前点击的元素
- // previous= this;
- // }
- // }
-
-
-
- // 3.
- for (let i = 0; i < imgs.length; i++) {
- var smallImg = imgs[i];
- // 找一个中间变量 来记录当前高亮的
- var previous = imgs[0];// 第一个高亮 指定第一个img对象
- smallImg.onclick = function () {
- // 当高亮和点击的是同一个元素时 不执行
- if(previous == this)
- return;
- // 把点击的小图 src 赋值 大图
- bigImg.src = this.src;
- // 把点击的元素添加类名
- imgs[i].classList.add("active");
- // 把之前高亮的移除
- previous.classList.remove("active");
- // 改变高亮元素 为当前点击的元素
- previous= this;
- }
- }
全局变量要等循环结束才能确定其值
-
- // Uncaught TypeError: Cannot read properties of undefined (reading 'innerText')
-
- var lis = document.querySelectorAll("li");
-
- for(var i = 0;i < lis.length;i++){
-
- var li = lis[i];
-
- li.onclick = function () {
- // console.log(lis[i].innerText);// 此处会报错 因为i是全局变量 要等到循环结束才能确定其值
- console.log("i ===== ",i);// == 4
- }
-
- }
-
- // 怎么解决呢
- // 把var 换成 let
- // (立即执行函数和闭包来解决)
- <div>
- <input type="text"> <button> + </button>
- <div class="box"></div>
- </div>
- <script>
- // innerHTML
- // create append
-
- var btn = document.querySelector("button");
-
- // var div = document.querySelector("div");
- // btn.onclick = function () {
- // // 往父元素中添加子元素 通过innerHTML的方式 会导致父元素的所有绑定的事件被注销
- // div.innerHTML += "<input type='text'> <button> -- </button>"
- // }
-
- var div = document.querySelector(".box");
- var num = 0;
-
- // 1.
- // btn.onclick = function () {
- // if (num < 5) {
- // div.innerHTML += "<input type='text'> <button> -- </button> <br/>"
- // }
- // else{
- // // alert("num的值是:",num);
- // console.log("num == ",num);
- // }
- // num++;
- // }
-
-
- // 2.
- btn.onclick = function() {
- var section = document.createElement("section");
- // var input = document.createElement("input");
- // var button = document.createElement("button");
- // button.innerText = " - ";
- // section.appendChild(input);
- // section.appendChild(button);
-
- section.innerHTML += "<input type='text'> <button class='del'> -- </button> <br/>"
- div.appendChild(section);
- }
- var delbtns = document.querySelectorAll(".del");
- console.log(delbtns.length);
-
- // 注意代码执行的顺序
- // 此时删除按钮点击无效
- //
- for (const btn of delbtns) {
- btn.onclick = function () {
- console.log(" ====== ");
- }
- }
-
-
- </script>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。