1 document属性:title URL bgColor fgColor
使用document 的title(标题) 属性
alert(document.title);
document.title="改变后的标题";
使用document 的URL(必须大写) 属性
alert(document.URL);
使用document 的bgColor 属性
document.bgColor="red";
使用document 的fgColor 属性
document.fgColor="blue";
方法:getElementById()通过ID获取元素
示例:
var button = document.getElementById("button");
alert(button.value);
2 getElementsByTagName()通过标签名获取元素(返回指定标签名的对象集合)
属性:length 可通过下标方式访问
示例:
var button = document.getElementById("button");
alert(button.value);
var input = document.getElementsByTagName("input");
alert(input.length);通过length
alert(input[3].value);通过下标方式访问
3 getElementsByName()返回带有指定名称的对象集合
属性:length 可通过下标方式访问
问题:有兼容性问题 ,如果name存在于form表单中,可以正常使用,如果出现在div元素中,则不能正常返回值(IE 不能使用 FF CHROM 可以使用)
示例:
var input = document.getElementsByName("input");
alert(input[0].value);
alert(input.length);
4 getElementsByClassName()返回指定的类名的对象集合
属性:length 可通过下标方式访问
问题:有兼容性问题 ,在 IE 不能使用 ,在 FF CHROM 可以使用
解决兼容性问题:
unction getClassName(ClassName){
if(document.getElementsByClassName){
return document.getElementsByClassName(ClassName)
}else{
var all = document.getElementsByTagName("*");
var arr=[];
for(var i=0;i<all.length;i++){
if(all[i].className == ClassName){
arr.push(all[i]);
}
}
return arr;
}
}
alert(getClassName("class1")[0].value);
<input class="class1" name="input" type="text" value="123"/>
<input class="class1" name="input" type="text"/>
<input class="class1" name="input" type="text"/>
<input id="button" type="button" value="刷新"/>
5 write() document.write("")输出数据在网页上
document对象集合:
1 all:所有对象集合 使用该属性用于判断/解决兼容性问题
示例:
if(document.all){
alert("IE") ;
}else{
alert("OTHER")
}
针对IE 则输出 "IE" 针对FF或者CHROME 则输出 "OTHER";注:document.all只针对IE;
2 form :所有form表单集合
访问:通过下标/通过name
示例:
alert(document.forms[0][2].value);
alert(document.forms[0].name1[0].value);
<form action="">
<input name="name1" type="text" value="1"/>
<input name="name1" type="text" value="2"/>
<input type="text" value="3"/>
<input type="text" value="4"/>
</form>
操作元素内容:
innerHTML:设置或获取 *标签 中的内容 比如"<h1>测试</h1>"
示例:var a = document.getElementById("a");
alert(a.innerHTML);
<div id="a"><h1>测试</h1></div>获取的是"<h1>测试</h1>"
有兼容问题:
innerText:获取文字内容(针对IE)
textContent:获取文字内容(FF CHROM)
解决兼容性问题:
var a = document.getElementById("a");
function b(a){
if(document.all){
alert(a.innerText);
}else{
alert(a.textContent);
}
}
b(a);
<div id="a">
<h1>测试</h1>
</div>
属性操作: 对象.属性=值
var a = document.getElementsByTagName("a")[0];
a.href="一个新的地址";
a.className="无设置CLASS标签时,可以取CLASS名";
a.getAttribute("href","newhref");
getAttribute("属性") 获取属性 setAttribute("属性","值") 设置属性
样式操作:
1 行内样式:*对象.style.属性
var div = document.getElementsByTagName("div")[0];
div.style.backgroundColor="red";值必须为字符串
小技巧:div.className = "另一个设置了样式的类名";原class设置的样式全部变成新的样式
2 CSS层叠样式 : 通过ID更改样式(批量更改尽量用CLASS值更改)
通过CLASS更改样式(批量更改)
更改或获取某个属性的值:document.styleSheets[index].rules[index].style.属性(IE chrom)
所有style标签中第[index]个标签 标签中第[index]个对象
document.styleSheets[index].cssrules[index].style.属性(firefox)
# 动态添加 删除样式 #
<!--动态添加样式(只针对W3C FF chrom)-->
document.styleSheets[0].insertRule(".div1{height:150px;background-color:red;width:150px;}",2);
动态删除样式(只针对W3C)
document.styleSheets[0].deleteRule(0);
动态添加样式(IE chrom)
document.styleSheets[0].addRule(".div1","height:300px;width:300px;",2);
动态删除样式(IE chrom)
document.styleSheets[0].removeRule(2);
# 获取最终样式(只能获取,不能赋值) #
针对W3C
alert(document.getComputedStyle(div1,null).width);
alert(document.getComputedStyle(div1,null)["width"]);
针对IE:对象.currenStyle.属性
alert(div1.currentStyle.width);
#
节点操作 #
1 获取该父元素的节点(无兼容问题)
alert(span.parentNode.nodeName);
2 获取对象所有子节点(换行也算节点,这个要注意,可以用,但是有兼容问题)
alert(father.childNodes.length);//返回 9 有兼容问题
解决兼容问题:
function a(obj){
var arr = [];
for(var i = 0;i<obj.childNodes.length;i++){
if(!(obj.childNodes[i].nodeType == 3 && obj.childNodes[i].nodeValue.trim()=="")){
arr.push(obj.childNodes[i]);
}
}
return arr;
}
alert(a(father).length);
3 获取第一个子节点 有兼容问题 返回换行
alert(father.firstChild.nodeName);
解决兼容问题:
function a(obj){
var b = obj.firstChild;
while(b.nodeType == 3 && b.nodeValue.trim() == ""){
b= b.nextSibling;
}
return b;
}
alert(a(father).nodeName);
4 获取最后一个子节点 有兼容问题 返回换行
alert(father.lastChild.nodeName);
解决兼容问题:
function a(obj){
var b = obj.lastChild;
while(b.nodeType == 3 && b.nodeValue.trim() == ""){
b= b.previousSibling;
}
return b;
}
alert(a(father).nodeName);
5 获取下一个兄弟节点 有兼容问题 返回换行
alert(father.nextSibling.nodeName);
解决兼容问题:
function a(obj){
var b = obj.nextSibling;
while(b.nodeType == 3 && b.nodeValue.trim() == ""){
b= b.nextSibling;
}
return b;
}
alert(a(div).nodeName);
6 获取上一个兄弟节点 有兼容问题 返回换行
alert(father.previousSibling.nodeName);
解决兼容问题:
function a(obj){
var b = obj.previousSibling;
while(b.nodeType == 3 && b.nodeValue.trim() == ""){
b= b.nextSibling;
}
return b;
}
alert(a(span).nodeName);