js_document

1. document

我们常说的dom是指:document object model

1) Document的属性

document.title //设置文档标题等价于HTML的title标签

document.bgColor //设置页面背景色

document.fgColor //设置前景色(文本颜色)

document.linkColor //未点击过的链接颜色

document.alinkColor //激活链接(焦点在此链接上)的颜色

document.vlinkColor //已点击过的链接颜色

document.URL //设置URL属性从而在同一窗口打开另一网页

document.fileCreatedDate //文件建立日期,只读属性

document.fileModifiedDate //文件修改日期,只读属性

document.fileSize //文件大小,只读属性

document.cookie //设置和读出cookie

document.charset //设置字符集 简体中文:gb2312

 

2) 常用方法

//动态向页面写入内容

document.write()

//创建一个html标签对象

document.createElement(Tag)

//获得指定ID值的对象

document.getElementById(ID)

//获得指定name值的对象数组(标签需要有name属性,如input标签,div标签是没有name属性的

document.getElementsByName(name)

//获得标签为name的对象数组

document.getElementsByTagName(name)

// 创建一个dom元素

document.createElement(tagname)

// 添加一个孩子元素

document.body.appendChild(oTag)

 

getElementById方法返回id为参数的标签对象,如果页面中id相同的标签有多个,则取么一个。如:

<input type="text" value="123" id="username"/>

<input type="text" value="456" id="username"/>

// id如果重了,只取第一个

document.write(document.getElementById("username").value);

输出:

 

 

getElementsByName方法返回所有标签的name属性为参数的标签。如:

<div name="desc">name为desc的标签</div>

<div name="desc">name为desc的标签2</div>

<div name="type">name为type的标签</div>

var descList = document.getElementsByName("desc");

document.write("getElementsByName('desc') length:"+descList.length);

for (var i = 0; i < descList.length; ++i)

{

document.write("<br />");

document.write(descList[i].innerHTML);

}

 

getElementsByTagName方法返回所有标签名称为参数的对象

var divList = document.getElementsByTagName("div");

document.write("getElementsByTagName('div') length:"+divList.length);

for (var i = 0; i < divList.length; ++i)

{

document.write("<br />");

document.write(divList[i].innerHTML);

}

输出所有标签为div的对象:

 

 

动态创建标签:

//document.createElement(tagName):创建一个元素

//appendChild(dom)

var divObj = document.createElement("div");

divObj.innerHTML = "<strong>我是一个动态创建的div哦!</strong>";

divObj.style.width = "220px";

divObj.style.height = "100px";

divObj.style.background = "#9F3";

divObj.style.border = "1px solid red";

divObj.style.marginTop = "100px";

document.body.appendChild(divObj);

 

 

3) 获取标签内容

① 非表单元素:

divpaspanlabeltabletrtdh2等:

innerHTML:获取带格式的文本(含子标签)

innerText:获取纯文本(只有内容,不含标签)

outerHTML:获取带格式的文本(含本标签和孩子标签)

outerText:获取纯文本

如:

<div id="isdiv">

div标签内容

<p>p标签内容</p>

</div>

alert("innerHTML:"+document.getElementById("isdiv").innerHTML);

alert("innerText:"+document.getElementById("isdiv").innerText);

alert("outerHTML:"+document.getElementById("isdiv").outerHTML);

alert("outerText:"+document.getElementById("isdiv").outerText);

 

 

 

② 表单元素

value:只有form元素才能使用value获取相应的值。

文本框:

var objDom = document.getElementById("XXXid");

var fieldValue = objDom.getAttribute("type");// 获取标签type

var tagName = objDom.tagName.toLowerCase();// 获取标签名称

if((tagName=="input" &&

(fieldValue=="text" || fieldValue=="password")) || tagName=="textarea"){

alert(objDom.value);

}

下拉框:

var objDom = document.getElementById("XXXid");

var fieldValue = objDom.getAttribute("type");// 获取标签type

var tagName = objDom.tagName.toLowerCase();// 获取标签名称

if(tagName=="select"){

var value = objDom.value;

var selectedIndex = objDom.selectedIndex;

var text = objDom.options[selectedIndex].text;

alert("value:"+value+"text:"+text);

}

单选/复选框:

var objDom = document.getElementsByName("XXXName");

var fieldValue = objDom[0].getAttribute("type");// 获取标签type

var tagName = objDom[0].tagName.toLowerCase();// 获取标签名称

if(tagName=="input" &&(fieldValue=="radio" || fieldValue=="checkbox")){

var arr = [];

for(var i=0;i<objDom.length;i++){

if(objDom[i].checked){

arr.push(objDom[i].value);

}

}

alert(arr.toString());

}

 

4) 获取/修改属性值

dom.getAttribute(key);//获取标签元素属性对应属性值

dom.setAttribute(key,value);//为标签元素添加属性和属性值

Key:属性、value:属性值。

:(id,"tm_div") (type,"text") (name,"username")

<input type="text" id="usernameid" age="30" username="张三"/>

var inputDom = document.getElementById("usernameid");

// 修改id值

inputDom.setAttribute("id","newid");

var newInputDom = document.getElementById("newid");

document.write("id为newid标签的age:"+newInputDom.getAttribute("age"));

输出:

 

又如,修改其他属性:

inputDom.setAttribute("age",20);

document.write("age改为20age:"+inputDom.getAttribute("age"));

 

 

如果是元素自身由w3c提供元素属性是可以直接通过当前dom对象本身获取

:

document.getElementById("username").id

document.getElementById("username").type

document.getElementById("username").name

document.getElementById("username").style

如:

var newInputDom = document.getElementById("newid");

// 直接使用.id

document.write(".id:"+newInputDom.id);

document.write("<br/>");

newInputDom.id="otherid";// 修改id值

document.write(".id=otherid后id:"+newInputDom.id);

document.write("<br/>");

输出:

 

 

5) 获取来访页面

//获取来访页面

alert(document.referrer);

上面的代码没有调通,可能是单词拼错,没有跑通。

此方法最常用的用途就是用来记录页面是从哪里点进来的,进行一个监控。

 

6) 获取当前页面中的焦点标签

// 还没有去测试过

alert(document.selection);

 

7) 获取孩子标签

获取body节点:var bodydom = document.body;

取元素的直接孩子节点:var elements = bodydom.childNodes;

如:

 

加上script元素一共有6个直接元素(div中的span不是直接子元素),所以最后输出12.因为每个元素算两个,一个标签一个值。

 

nodeName 属性含有某个节点的名称。

元素节点的 nodeName 是标签名称

属性节点的 nodeName 是属性名称

文本节点的 nodeName 永远是 #text

文档节点的 nodeName 永远是 #document

注释:nodeName 所包含的 XML 元素的标签名称永远是大写的

 

节点类型取值(nodeType)

元素节点

1

元素element

2

属性attr

3

文本text

8

注释comments

9

文档document

 

上面的方法是获取所有孩子,其中标签内容也是孩子之一,下面使用另一种方法只获取孩子标签。Dom.children

 

 

结果如下:

 

 

8) 获取父标签

var dom = document.body.chileNodes[0];

dom.parentNode;// == document.body;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值