一,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";
};
//删除class
oBtnRemove.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”);