javascript获取Document类型和Element类型属性

DOM


节点层次:
Document类型

JavaScript 通过 Document 类型表示文档。在浏览器中, document 对象是 HTMLDocument(继承自 Document 类型)的一个实例,表示整个 HTML 页面。而且, document 对象是 window 对象的一个属性,因此可以将其作为全局对象来访问。

1、文档子节点
可以使用document.documentElement属性,该属性始终指向HTML页面中<html>元素。另一个就是通过 childNodes 列表访问文档元素,但通过 documentElement 属性则能更快捷、更直接地访问该元素

两种方法:
document.documentElement;
document.childNodes[0];
document.firstChild;
输出结果是获取所有页面所有元素
<html>
<head> 
</head>
<body>
<form>
ssss
</form> 
</body>
</html>
document还有一个body属性可以直接指向html中<body>元素
var body = document.body;//取得对<body>的引用
所有浏览器都是支持document.documentElement;和document.body;这两个属性的。

2、文档信息
document.title;获取文档标题信息,可以修改这个标题信息:document.title = "这是一个测试";
document.URL;//取得完整的 URL
document.domain;//取得域名
document.referrer;//取得来源页面的 URL

3、查找元素
document.getElementById("");接收一个参数:要取得的元素的 ID。如果找到相应的元素则返回该元素,如果不存在带有相应 ID 的元素,则返回 null。

document.getElementsByTagName("");这个方法接受一个参数,即要取得元素的标签名,而返回的是包含零或多个元素的 NodeList。

document.getElementsByName("");这个方法会返回带有给定 name 特性的所有元素。最常使用 getElementsByName()法的情况是取得单选按钮;为了确保发送给浏览器的值正确无误,所有单选按钮必须具有相同的 name 特性,
<html>
<head>
 
</head>
<script type="text/javascript">
function check(){
var color = document.getElementsByName("color");
for(var i = 0 ; i < color.length;i++){
if(color[i].checked){
console.log(color[i].value);
}


</script>
<body>
<form>
<fieldset>
<legend>Which color do you prefer?</legend>
<ul>
<li><input type="radio" value="red" name="color" id="colorRed" onclick="check();">
<label for="colorRed">Red</label></li>
<li><input type="radio" value="green" name="color" id="colorGreen" onclick="check();">
<label for="colorGreen">Green</label></li>
<li><input type="radio" value="blue" name="color" id="colorBlue" onclick="check();">
<label for="colorBlue">Blue</label></li>
</ul>
</fieldset>
</form>
</body>
</html>



4、特殊集合
除了属性和方法, document 对象还有一些特殊的集合。这些集合都是 HTMLCollection 对象,为访问文档常用的部分提供了快捷方式,包括:
document.anchors,包含文档中所有带 name 特性的<a>元素;
document.applets,包含文档中所有的<applet>元素,因为不再推荐使用<applet>元素,所以这个集合已经不建议使用了;
document.forms,包含文档中所有的<form>元素,与 document.getElementsByTagName("form")得到的结果相同;
document.images,包含文档中所有的<img>元素,与 document.getElementsByTagName("img")得到的结果相同;
document.links,包含文档中所有带 href 特性的<a>元素
 
5、文档写入
document将输出流写入到网页中。
write(),writeln(),open()和close();
write()和writeln()方法都接收一个字符串参数,即要写入到输出流中的文本。write()会原样写入,而writeln()则会在字符
串的末尾添加一个换行符(\n)。在页面被加载的过程中,可以使用这个两个方法向页面中动态地加入内容。
实例:
<html>
<head>
 
</head>
<script type="text/javascript">
 
</script>
<body>
<form>
<p>The current date and time is:
<script type="application/javascript">
document.write("<strong>"+(new Date()).toString()+"</strong>") 
</script>
 
</p>
</form>
</body>
</html> 


Element类型

Element 类型是使用 attributes 属性的唯一一个 DOM 节点类型。attributes 属性中包含一个NamedNodeMap,与 NodeList 类似,也是一个“动态”的集合。元素的每一个特性都由一个 Attr 节点表示,每个节点都保存在 NamedNodeMap 对象中。
getNamedItem(name):返回 nodeName 属性等于 name 的节点;
removeNamedItem(name):从列表中移除 nodeName 属性等于 name 的节点;
setNamedItem(node):向列表中添加节点,以节点的 nodeName 属性为索引;
item(pos):返回位于数字 pos 位置处的节点。
<html>
<head>
 
</head>
<script type="text/javascript">
 
</script>
<body>
<form>
<div id="myDiv" align="left" my_special_attribute="hello!"></div>
</form>
</body>
</html>


//获取div 元素
var div = document.getElementById("myDiv")

1、取得特性
div.getAttribute("id");
div.getAttribute("align");
div.getAttribute("my_special_attribute");
2、设置特性
div.setAttribute("id","test");
div.setAttribute("align","test");
div.setAttribute("my_special_attribute","test");
3、移除特性
div.removeAttribute("id");
4、attributes 属性
div.attributes.id.value;//myDiv
div.attributes.getNamedItem("id").nodeValue;//myDiv
div.attributes["id"].nodeValue;//myDiv
5、设置新的值
element.attributes["id"].nodeValue = "someOtherId";
6、删除特性
element.attributes.removeNamedItem("id");
7、创建元素
使用document.createElement()方法可以创建新元素
var userName = document.createElement("input");
添加属性
userName.setAttribute("id","userName");
userName.setAttribute("name","userName");
userName.setAttribute("value","liuwenlaing");

userName:<input id="userName" name="userName" value="liuwenlaing">

通过appendChild()、 insertBefore()或 replaceChild()把新元素添加到文档树中。
var div = document.getElementById("myDiv");
div.appendChild(userName);
div:
//<div id="myDiv" align="left" my_special_attribute="hello!"><input id="userName" name="userName" value="liuwenlaing"></div>
直接创建元素信息:
var div = document.createElement("<div id=\"myNewDiv\" class=\"box\"></div >");
8、元素的子节点
<html>
<head> 
</head> 
<body>
<form>
<ul id="myList">
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
</form>
</body>
</html>

for(var i = 0 ; i < items.length;i++){
console.log(items[i]); 
}

<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
这里<ul>的后代中只包含直接子元素。不过,如果它包含更多层次的后代元素,那么各个层次中包含的<li>元素也都会返回。 
<think>好的,用户想了解如何使用JavaScript获取指定ID元素的值。首先,我需要确认用户的基础,是否了解DOM操作的基本方法。可能需要从最基础的getElementById开始讲起。 用户提到的“ID类型下面的值”可能是指具有特定ID的元素内部的值,比如input、textarea或者其他表单元素。也有可能用户是指获取某个ID元素下的子元素的值,需要进一步澄清,但根据常见情况,先假设是获取元素本身的value属性。 首先,应该介绍getElementById方法,这是最直接的方式。然后,考虑到现代浏览器,可能提到querySelector,因为它更灵活。接下来,需要说明如何获取不同类型的值,比如textContent、innerHTML或者value属性,具体取决于元素的类型。 然后,需要举例说明,比如一个输入框一个div的情况,展示不同的属性方法。同时,要提醒用户确保元素加载完成后再执行脚本,避免获取不到元素,通常可以通过将脚本放在body末尾或者使用DOMContentLoaded事件。 可能还需要提到异常处理,比如检查元素是否存在,避免脚本出错。此外,如果用户需要获取子元素的值,可能需要使用querySelector或遍历子元素,但用户的问题可能更基础,所以先集中在基本方法上。 最后,总结步骤,确保结构清晰,帮助用户逐步解决问题。检查是否有遗漏的情况,比如动态生成的元素,是否需要事件监听等,但根据问题描述,可能不需要深入这些细节。保持回答简洁,覆盖主要方法即可。</think>在JavaScript获取指定ID元素的值,可以按照以下步骤操作: 1. 使用标准DOM方法获取元素 - `document.getElementById()` 是最直接的方法 ```javascript // 获取元素对象 const element = document.getElementById('yourElementId'); // 获取值(根据不同元素类型) const value = element.value; // 适用于输入型元素 const textContent = element.textContent; // 获取文本内容 const innerHTML = element.innerHTML; // 获取包含HTML的内容 ``` 2. 现代浏览器推荐方法(ES6+) 使用 `querySelector` 支持更复杂的选择: ```javascript // 通过ID选择器 const inputElement = document.querySelector('#yourElementId'); console.log(inputElement.value); // 输出input的值 // 组合选择(ID下的子元素) const childValue = document.querySelector('#parentId .childClass').value; ``` 3. 不同元素类型的值获取示例: ```html <input type="text" id="username" value="张三"> <div id="content">Hello <span>World</span></div> ``` ```javascript // 输入框的值 console.log(document.getElementById('username').value); // 输出"张三" // div内容获取对比 console.log(document.getElementById('content').textContent); // "Hello World" console.log(document.getElementById('content').innerHTML); // "Hello <span>World</span>" ``` 4. 注意事项 √ 确保DOM加载完成后再执行脚本 ```javascript // 推荐将脚本放在body末尾,或使用事件监听 document.addEventListener('DOMContentLoaded', function() { // 你的代码 }); ``` √ 添加空值检查 ```javascript const element = document.getElementById('nonExistentId'); if(element) { console.log(element.value); } else { console.log('元素不存在'); } ``` 5. 特殊场景处理 对于表单控件组(如radio buttons): ```html <input type="radio" name="gender" id="male" value="1"> <input type="radio" name="gender" id="female" value="2"> ``` ```javascript // 获取选中的值 const selected = document.querySelector('input[name="gender"]:checked').value; ``` 通过以上方法,您可以安全可靠地获取页面中指定ID元素的值。根据实际元素类型选择正确的属性(value/textContent/innerHTML)是关键。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值