基础介绍
js的三部分组成
ECMAScript、BOM(浏览器对象模型,就是js操作浏览器)、DOM(文档对象模型,js操作html文档、css样式等)
BOM:大部分内容作为了解
DOM:需要熟练掌握
window对象常用方法
window.innerHeight - 浏览器窗口的内部高度
window.innerWidth - 浏览器窗口的内部宽度
window.open() - 打开新窗口
window.close() - 关闭当前窗口
# navigator对象(了解即可)
navigator.appName // Web浏览器全称
navigator.appVersion // Web浏览器厂商和版本的详细字符串
navigator.userAgent // 客户端绝大部分信息
navigator.platform // 浏览器运行所在的操作系统
# history对象(了解即可)
history.forward() // 前进一页
history.back() // 后退一页
# location对象------------------->掌握重要
location.href 获取URL
location.href="URL" // 跳转到指定页面,在pycharm写就会直接跳转至写入的界面
location.reload() 重新加载页面
# 弹出框
alert("你看到了吗?");
confirm("你确定吗?")
prompt("请在下方输入","你的答案")
计时相关(定时器)
setTimeout只执行一次:
function f1(){ console.log(123+Math.random()); }var t1 = setTimeout(f1,3000) //单位是毫秒,三秒后执行,只执行一次
清除定时器
clearTimeout(t1);
setInterval多次循环
function f1(){ console.log(100+Math.random()) } var t2 = setInterval(f1,3000)
闭包定时器(执行3次alert)
function f2(){ alert(12345); } function show(){ let t = setInterval(f2,3000); function inner(){ clearInterval(t) } setTimeout(inner,9000); } show()
DOM(重点)
DOM标准规定HTML文档中的每个成分都是一个节点(node):
● 文档节点(document对象):代表整个文档
● 元素节点(element 对象):代表一个元素(标签)
● 文本节点(text对象):代表元素(标签)中的文本
● 属性节点(attribute对象):代表一个属性,元素(标签)才有属性
● 注释是注释节点(comment对象)
JavaScript 可以通过DOM创建动态的 HTML:
● JavaScript 能够改变页面中的所有 HTML 元素
● JavaScript 能够改变页面中的所有 HTML 属性
● JavaScript 能够改变页面中的所有 CSS 样式
● JavaScript 能够对页面中的所有事件做出反应
查找标签:
<div id="d1" class="c1">div</div> <div id="d2" class="c1">div</div> <div id="d3" class="c1">div</div> <input type="text" name="username">
以下例子按上述代码查找
直接查找:
用(id)getElementById查找
var div = document.getElementById('d1') console.log(div); var div1 = document.getElementById('d2') console.log(div1) var div2 = document.getElementById('d3') console.log(div2)
用(class)getElementsByClassName查找
var div = document.getElementsByClassName('c1') console.log(div)
结果:
索引取值
var div = document.getElementsByClassName('c1')[0] console.log(div)
用标签取值(getElementsByTagName),也可索引取值,同class
var div = document.getElementsByTagName('div'); console.log(div);
通过定义属性查找
var div3 = document.getElementsByName('username'); // 通过input的name属性获取 console.log(div3);
间接查找
parentElement 父节点标签元素
children 所有子标签
firstElementChild 第一个子标签元素 (相当于children的索引0.)
lastElementChild 最后一个子标签元素 (children的最后一个值)
nextElementSibling 下一个兄弟标签元素 (同级标签的下面一个)
previousElementSibling 上一个兄弟标签元素 (同级标签的上面一个)
当用class查找的时候要索引,否则无法准确到取的具体值,但是id取值不用索引。
children也需要索引
<div class="div5"> <ul class="u1"> <li>1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> </ul> </div> var div = document.getElementsByClassName('div5')[0]; console.log(div) var ul = div.children[0]; console.log(ul)
节点操作
举例:动态创建一个img标签出来
var img = document.createElement('img'); //找到要放入div的位置 var div = document.getElementById('d1'); // 给img标签设置src属性 img.src = '1234.png'; img.alt='xixixi'; //给标签设置属性的时候,只能给标签自带的属性添加,自定义属性不能通过点形式设置 //img.username = 's1'//这个方式是不可以的 //设置自定义属性用 img.setAttribute('username','s1'); console.log(img.getAttribute('username'));//取定义的username的值 //移除username img.removeAttribute('username'); console.log(img); //将img标签放到div里 div.appendChild(img);
创建a链接出来
// 1. 常见出来a标签 var a = document.createElement('a'); // <a></a> // 2. 设置属性 a.href = 'http://www.baidu.com'; // // <a href='http://www.baidu.com'></a> a.title = '这是a'; // 3. 给a标签设置文本内容 // a.innerText = '<h1>点我看美女</h1>'; // <a href='http://www.baidu.com'>点我看美女</a> a.innerHTML = '<h1>点我看美女</h1>' // 识别html标签 console.log(a); // 4. 把a放到div里面取 var div = document.getElementById('d1'); div.appendChild(a);
标签:console,log,img,DOM,标签,BOM,var,div From: https://www.cnblogs.com/YeeQX/p/17572444.html