获取元素
id获取元素:
语法:document.getElementById('id的值');
tagName获取元素集合:
语法:document.getElementsByTagName('div'); //伪数组
类名获得元素集合:
语法:document.getElementsByClassName("类名") //伪数组
选择器:
获取单个:
语法:document.querySelector('选择器');
获取一组:
语法:document.querySelectorAll('选择器');
事件基础
事件三要素
-
事件源:被触发的元素,比如点击的按钮
-
事件类型:如何触发的事件,比如:点击按钮 onclick
-
事件处理程序:事件发生后的结果。
给元素注册事件
-
语法:事件源.事件类型 = 事件处理程序;
-
事件源→ 触发的那个元素
-
事件类型→ 点击 onclick
-
事件处理程序→ 函数
作用:获取元素,元素添加事件
-
例如:
<button id = “btn”>我是一个按钮</button>
<script>
var btn = document.getElementById('btn');
btn.onclick = function(){
alert("燃烧我的卡路里");
}
</script>
(此时点击button按钮,就会出现“燃烧我的卡路里的提示框”)
取消a标签的默认行为
方式一:事件处理程序中最后设置return false;
<a id="link" href="https://www.baidu.com">点击</a>
<script>
var link = document.getElementById('link');
link.onclick = function(){
alert('你好');
// 方式1:取消a点击后的默认跳转行为 return false;
return false;
};
</script>
方式二:设置a标签的href属性值为:javascript: ;
<a href="javascript:;">点击2</a>
<a href="javascript:alert(123)">请点击看效果3</a>
<a href="javascript:js_method();"></a>
<!-- 扩展:通过a可以打开打电话应用 -->
<a href="tel:">打电话</a>
<!-- 扩展:通过a可以打开电子邮件应用 -->
<a href="mailto:">打开邮件</a>
操作元素的属性:
方法一:
获取:
语法:元素.属性名;
设置:
语法:元素.属性名=值
方式二:
获取属性值:
语法:getAttribute('属性','属性值')
注意:方式一,方式二不能混合使用,用方式一设置的属性不能使用getAttribute
设置属性及属性值:
语法:setAttribute('属性','属性值')
移除属性:
语法:removeAttribute("属性")
案例:
<div id="a" index="1" class="hezi"></div>
<script>
var div = document.querySelector("div")
//1、获取元素的属性值
//(1)element.属性
console.log(div.id);
console.log(div.className);//注意:获取元素类名时,使用className获取
console.log(div.index);//undefined
//element.getAttribute('属性') 程序员自己添加的属性我们称为自定义属性
console.log(div.getAttribute("index")); //1
console.log(div.getAttribute("id")); //a
//element.setAttribute("属性 " , "属性值") 主要针对于自定义属性
div.setAttribute("index",2);
div.setAttribute("class","head"); //特殊记忆 **单独设置类名时用class** 不用className
console.log(div.getAttribute("class")); // head 特殊记忆 获取**自己设置的类名时用class** 不用className
//3、移除属性 removeAttribute(属性)
div.removeAttribute("index");
html5新增属性 data- 作用 ----- 自定义属性
定义值方法:div.setAttribute("data-index", 20);
取值方法: 获得的元素.dataset(得到一个所有data开头定义的对象的集合)
获取特定的值:获得的元素.dataset.[' '](获得的是以data开头的属性)
存值:dataset.[' ']=值
其他属性:
className操作类名
<div id="box" class="a"></div>
<script>
var div = document.getElementById('box');
// 获取类名
console.log(div.class); // undefined
console.log(div.className); // a
// 设置类名
div.className = 'b';
console.log(div.className); //b
</script>
innerText和innerHTML的区别
【获取】
通过innerText获取,仅仅包含文本,不识别HTML标签 非标准 去除空格和换行
通过innerHTML获取,若有子标签时,会包含文本和子标签,识别html标签 W3C标准 保留空格和换行的
表单修改里面的文字不能通过innerHTML修改了 而是通过value修改
【设置】
① 通过innerText设置,若设置中包含了子标签,该标签不会被渲染而是当做普通文本显示
div.innerText = '<a href="#">我是div中的超链接</a>';
② 通过innerHTML设置,若设置中包含了子标签,该标签会被渲染显示