您的位置:首页 > 健康 > 美食 > 手机定制app_莱芜网络推广公司提供_百度小说排行榜2020前十名_太原seo优化

手机定制app_莱芜网络推广公司提供_百度小说排行榜2020前十名_太原seo优化

2025/3/17 6:19:39 来源:https://blog.csdn.net/m0_73805456/article/details/146292248  浏览:    关键词:手机定制app_莱芜网络推广公司提供_百度小说排行榜2020前十名_太原seo优化
手机定制app_莱芜网络推广公司提供_百度小说排行榜2020前十名_太原seo优化

1. 日期对象

1.1 实例化

  <script>// 实例化// 1.得到当前时间const date = new Date()console.log(date);// 2.得到指定时间const date1 = new Date('2025-3-14')console.log((date1));</script>

1.2 日期对象方法

千万不要忘记加小括号

    // 获得日期对象const date2 = new Date()// 使用里面的方法console.log(date2.getFullYear());console.log(date2.getMonth() + 1); //getMonth()取值0~11console.log(date2.getDate());console.log(date2.getDay()); //星期几,getDay()取值范围0~6,星期日是第0天

显示格式化时间

  <script>const div = document.querySelector('div')function getMyDate() {const date = new Date()// 不足10,前补0let h = date.getHours()h = h < 10 ? '0' + h : hlet m = date.getMinutes()m = m < 10 ? '0' + m : mlet s = date.getSeconds()s = s < 10 ? '0' + s : sreturn `今天是:${date.getFullYear()}年${date.getMonth() + 1}月${date.getDate()}日 ${h}:${m}:${s}`}div.innerHTML = getMyDate() //防止刚刷新时1秒的空白setInterval(function () {div.innerHTML = getMyDate()}, 1000)</script>

另一种写法(不用手动补0)

    const div = document.querySelector('div')const date = new Date()div.innerHTML = date.toLocaleString()setInterval(function () {const date = new Date() //要获取最新的时间div.innerHTML = date.toLocaleString() // 2025/3/16 11:46:04// div.innerHTML = date.toLocaleDateString() // 2025/3/16// div.innerHTML = date.toLocaleTimeString() // 11:46:04}, 1000)

1.3 时间戳

    //1. getTime()const date = new Date()console.log(date.getTime())// //2. +new Date()console.log(+new Date()) //new Date()是字符串 +转化成数字型// // 3. Date.now()  不需要实例化console.log(Date.now())
//返回指定时间的时间戳
console.log(+new Date('2025/3/16 11:46:04')) //2025-3-16 11:46:04 也行
    //返回星期几const arr = ['星期天', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六']console.log(arr[new Date().getDay()])

倒计时效果

  <script>// 随机颜色函数// 1. 自定义一个随机颜色函数function getRandomColor(flag = true) {if (flag) {// 3. 如果是true 则返回 #fffffflet str = '#'let arr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f']// 利用for循环随机抽6次 累加到 str里面for (let i = 1; i <= 6; i++) {// 每次要随机从数组里面抽取一个  // random 是数组的索引号 是随机的let random = Math.floor(Math.random() * arr.length)// str = str + arr[random]str += arr[random]}return str} else {// 4. 否则是 false 则返回 rgb(255,255,255)let r = Math.floor(Math.random() * 256)  // 55let g = Math.floor(Math.random() * 256)  // 89let b = Math.floor(Math.random() * 256)  // 255return `rgb(${r},${g},${b})`}}// 页面刷新随机得到颜色const countdown = document.querySelector('.countdown')countdown.style.backgroundColor = getRandomColor()// 函数封装 getCountTimefunction getCountTime() {// 1. 得到当前的时间戳const now = +new Date()// 2. 得到将来的时间戳const last = +new Date('20225-3-16 13:30:00')// console.log(now, last)// 3. 得到剩余的时间戳 count  记得转换为 秒数const count = (last - now) / 1000// console.log(count)// 4. 转换为时分秒// h = parseInt(总秒数 / 60 / 60 % 24)   //   计算小时// m = parseInt(总秒数 / 60 % 60);     //   计算分数// s = parseInt(总秒数 % 60);   // let d = parseInt(count / 60 / 60 / 24)               //   计算当前秒数let h = parseInt(count / 60 / 60 % 24)h = h < 10 ? '0' + h : hlet m = parseInt(count / 60 % 60)m = m < 10 ? '0' + m : mlet s = parseInt(count % 60)s = s < 10 ? '0' + s : sconsole.log(h, m, s)//  5. 把时分秒写到对应的盒子里面document.querySelector('#hour').innerHTML = hdocument.querySelector('#minutes').innerHTML = mdocument.querySelector('#scond').innerHTML = s}// 先调用一次getCountTime()// 开启定时器setInterval(getCountTime, 1000)// 日期const next = document.querySelector('.next')function getDate() {const date = new Date()next.innerHTML = `今天是:${date.getFullYear()}年${date.getMonth() + 1}月${date.getDate()}日`}getDate()setInterval(getDate, 1000)</script>

2. 节点操作—元素节点

2.1 DOM节点

2.2 查找结点(通过关系 属性)

//关闭广告
<body><div class="box">我是广告1<div class="box1">X</div></div><div class="box">我是广告2<div class="box1">X</div></div><div class="box">我是广告3<div class="box1">X</div></div></div><script>//单个广告// const box1 = document.querySelector('.box1')// box1.addEventListener('click', function () {//   this.parentNode.style.display = 'none'// })//多个广告const closeBtn = document.querySelectorAll('.box1')for (let i = 0; i < closeBtn.length; i++) {closeBtn[i].addEventListener('click', function () {this.parentNode.style.display = 'none'})}</script>
</body>

得到的是伪数组,包含所有的亲儿子

2.3 增加节点(重点)

  <script>// 1.创建节点const li = document.createElement('li')// 2.追加节点const ul = document.querySelector('ul')li.innerHTML = '我是新增的li'// ul.appendChild(li) //尾增ul.insertBefore(li, ul.children[0]) //将li插入到ul中第一个li的前面</script>
    <script>// 1. 重构  let data = [{src: 'images/course01.png',title: 'Think PHP 5.0 博客系统实战项目演练',num: 1125},{src: 'images/course02.png',title: 'Android 网络动态图片加载实战',num: 357},{src: 'images/course03.png',title: 'Angular2 大前端商城实战项目演练',num: 22250},{src: 'images/course04.png',title: 'Android APP 实战项目演练',num: 389},{src: 'images/course05.png',title: 'UGUI 源码深度分析案例',num: 124},{src: 'images/course06.png',title: 'Kami2首页界面切换效果实战演练',num: 432},{src: 'images/course07.png',title: 'UNITY 从入门到精通实战案例',num: 888},{src: 'images/course08.png',title: 'Cocos 深度学习你不会错过的实战',num: 590},]const ul = document.querySelector('.box-bd ul')// 1. 根据数据的个数,创建 对应的小lifor (let i = 0; i < data.length; i++) {// 2. 创建新的小liconst li = document.createElement('li')// 把内容给lili.innerHTML = `<a href="#"><img src=${data[i].src} alt=""><h4>${data[i].title}</h4><div class="info"><span>高级</span> • <span>${data[i].num}</span>人在学习</div></a>`// 3. ul追加小liul.appendChild(li)}</script>

    const ul = document.querySelector('ul')// 克隆节点 元素.cloneNode(true) 深克隆 将被克隆元素中所有内容都克隆//.cloneNode(false) 浅克隆 只克隆标签const li1 = ul.children[0].cloneNode(true)// console.log(li1);ul.appendChild(li1)

2.4 删除节点

ul.removeChild(ul.children[0])

3. M端事件(了解)

4. JS插件

5. 案例—学生信息表

  <script>// 获取元素const uname = document.querySelector('.uname')const age = document.querySelector('.age')const gender = document.querySelector('.gender')const salary = document.querySelector('.salary')const city = document.querySelector('.city')const tbody = document.querySelector('tbody')// 获取所有带有name属性的 元素const items = document.querySelectorAll('[name]')// 声明一个空的数组, 增加和删除都是对这个数组进行操作const arr = []// 1. 录入模块// 1.1 表单提交事件const info = document.querySelector('.info')info.addEventListener('submit', function (e) {// 阻止默认行为  不跳转e.preventDefault()// console.log(11)// 这里进行表单验证  如果不通过,直接中断,不需要添加数据// 先遍历循环for (let i = 0; i < items.length; i++) {if (items[i].value === '') {return alert('输入内容不能为空')}}// 创建新的对象 取得表单元素的值const obj = {stuId: arr.length + 1,uname: uname.value,age: age.value,gender: gender.value,salary: salary.value,city: city.value}// console.log(obj)arr.push(obj) // 追加给数组里面this.reset() // 清空表单  重置 render() // 调用渲染函数})// 2. 渲染函数 因为增加和删除都需要渲染function render() {// 先清空tbody 以前的行 ,把最新数组里面的数据渲染完毕 tbody.innerHTML = ''// 遍历arr数组for (let i = 0; i < arr.length; i++) {// 生成 tr const tr = document.createElement('tr')tr.innerHTML = `<td>${arr[i].stuId}</td><td>${arr[i].uname}</td><td>${arr[i].age}</td><td>${arr[i].gender}</td><td>${arr[i].salary}</td><td>${arr[i].city}</td><td><a href="javascript:" data-id=${i}>删除</a></td>`// 追加元素  父元素.appendChild(子元素)tbody.appendChild(tr)}}// 3. 删除操作// 3.1 事件委托 tbodytbody.addEventListener('click', function (e) {if (e.target.tagName === 'A') {// 得到当前元素的自定义属性 data-id// console.log(e.target.dataset.id)// 删除arr 数组里面对应的数据arr.splice(e.target.dataset.id, 1)render() // 重新渲染一次}})</script>

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com