一,HTML属性操作(对象属性)
HTML属性操作,指的是使用JavaScript来操作一个元素的HTML属性。
在JavaScript中,有两种操作属性的方式:一种是使用“对象属性”;另外一种是使用“对象方法”。
1. 获取HTML属性值
获取HTML元素的属性值,一般都是通过属性名,来找到该属性对应的值。
语法:obj.attr
说明:
obj是元素名,它是一个DOM对象。
所谓DOM对象,指的是getElementById()、getElementsByTagName()等方法获取到的元素节点。
attr是属性名,对于一个对象来说,通过点运算符来获取它的属性值。
例:
<!DOCTYPE html><html><head><meta charset="utf-8"/><title></title><script>window.onload = function(){var oBtn = document.getElementById("btn"); //要想获取属性的值,首先需要找到这个元素节点oBtn.onclick = function(){alert(oBtn.id); //通过元素节点获取该属性的值//获取文本框的值var oTxt = document.getElementById("txt");alert(oTxt.value); //通过value属性获取文本框的值//使用for循环遍历所有的单选框var oFruit = document.getElementsByName("fruit");for(var i=0; i<oFruit.length; i++){if(oFruit[i].checked) //判断当前遍历的单选框是否被选中(即checked是否为true){alert(oFruit[i].value);}}//使用for循环获取复选框内容var oFruit = document.getElementsByName("fruit");var str = "";for(var i=0; i<oFruit.length; i++){if(oFruit[i].checked){str += oFruit[i].value;}}alert(str);};//获取下拉菜单的值var oSelect = document.getElementById("select");alert(oSelect.value);}</script></head><body><input id="btn" class="myBtn" type="button" value="获取"/><input id="txt" type="text"><div><label><input type="radio" name="fruit" value="苹果"/></label><label><input type="radio" name="fruit" value="香蕉"/></label><label><input type="radio" name="fruit" value="西瓜"/></label></div><div><label><input type="checkbox" name="fruit" value="苹果"/></label><label><input type="checkbox" name="fruit" value="香蕉"/></label><label><input type="checkbox" name="fruit" value="西瓜"/></label></div><div><select id="select"><option value="北京">北京</option><option value="上海">上海</option><option value="广州">广州</option><option value="成都">成都</option><option value="西安">西安</option></select></div></body></html>
注意:
如果想要获取一个元素的class值,不能写成obj.class,而应该是obj.className
在实际的开发中,获取文本框、单选按钮、复选框、下拉列表中的值,都是通过value属性获取的!
2. 设置HTML属性值
语法:obj.attr = "值";
说明:
obj是元素名,它是一个DOM对象,attr是属性名
例:
<!DOCTYPE html><html><head><meta charset="utf-8"/><title></title><script>window.onload = function(){var oBtn = document.getElementById("btn");var oPic document.getElementById("pic");var flag = true;oBtn.onclick = function(){if(flag){oPic.src = "img/2.png";flag = false;}else{oPic.src = "img/1.png";flag = true;}};}</script></head><body><input id="btn" type="button" value="修改"/><br/><img id="pic" src="img/1.png"></body></html>
二,HTML属性操作(对象方法)
1. getAttribute( )
在JavaScript中,可以使用getAttribute( )方法来获取元素的某个属性的值
语法:obj.getAttribute("attr");
说明:
obj是元素名,attr是属性名。
它与obj.attr是等价,不同的是该方法是可以获取自定义属性值,而obj.attr不行。
例:
<!DOCTYPE html><html><head><meta charset="utf-8"/><title></title><script>window.onload = function(){var oBtn = document.getElementById("btn");oBtn.onclick = function(){alert(oBtn.data); //此时会报错,因为obj.attr方式是不能获取自定义属性的值;alert(oBtn.getAttribute("data")); //通过这种方式可以获取};}</script></head><body><input id="btn" type="button" value="获取" data="JavaScript"> //data属性是自定义属性</body></html>
备注:
所谓自定义属性,是指这个属性是用户自己定义的而不是元素自带的。
2. setAttribute( )
设置元素的某个属性的值
语法:obj.setAttribute("atrr","值");
说明:
obj是元素名,attr是属性名;
等价于obj.attr = “值”;
注意:
与getAttribute()方法相似,通过自定义属性的值,只能使用setAttribute( )方法来实现。
3. removeAttribute( )
该方法用来删除元素的某一个属性
语法:obj.removeAttribute("attr");
例:
<!DOCTYPE html><html><head><meta charset="utf-8"/><title></title><script>window.onload = function(){var oP = document.getElementsByTagName("p"); //通过标签获取元素oP[0].onclick = function(){oP[0].removeAttribute("class"); //删除class属性}}</script></head><body><p class="main">你偷走了我的影子,无论你在哪里,我都会一直想着你。</p></body></html>
该方法更多情况下是结合class属性来“整体”控制元素的样式属性的!
例:
<!DOCTYPE html><html><head><meta charset="utf-8"/><title></title><style type="text/css">.main{color:red;font-weight:bold;}</style><script>window.onload = function (){var oP = document.getElementsByTagName("p");var oBtnAdd = document.getElementById("btn_add");var oBtnRemove = document.getElementById("btn_remove");//添加class属性oBtnAdd.onclick = function(){oP[0].className = "main";};//删除classoBtnRemove.onclick = function(){oP[0].removeAttribute("class");};}</script></head><body><p>你偷走了我的影子,无论你在哪里,我都会一直想着你。</p><input id="btn_add" type="button" value="添加样式"><input id="btn_remove" type="button" value="删除样式"></body></html>
备注:
要想为一个元素删除一个class,可以使用:
oP[0].calssName = “”; oP[0].removeAttribute(“class”);
