JS 之Document对象 获取byId byName byTagName

JS 对象模型Document 的标签节点获取 byId byName byTagname
一、关于Document

《一》、DOM 全称是Document Object Model 文档对象模型

<1>、Document 对象的理解:

第一点:Document它管理了所有的Html文档内容。

第二点:document它是一种树结构的文档。有层级关系。

第三点:它让我们把所有的标签 都 对象化 

第四点:我们可以通过document访问所有的标签对象。

<2>、有了Document对象自然有了其对象的一些基本属性,在Document中

主要的操作对象时节点 Node

节点:Node——构成HTML文档最基本的单元。

节点我们关心的主要是:

        元素节点:HTML文档中的HTML标签

        属性节点:标签的属性

        文本节点:HTML标签中的文本内容

<3>、节点的常用属性

nodeName表示节点名

nodeType表示节点类型

nodeValue表示节点值

<4>三类节点的三个属性如下:

nodeNamenodeTypenodeValue
元素节点标签名1null
属性节点属性名2属性值
文本节点#text3文本内容

<5>、举例:

<div id="div01">hello world</div>

在上面的这个标签中
<div>         是元素节点
id=”div01”    是属性节点
hello world   是文本节点

对于三类节点属性用alert()测试如下:

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
<script type="text/javascript">

    //动态注册页面加载完成onload事件
    window.onload = function() {

    // <div> 元素节点
    var divObj = document.getElementById("div01");
    alert(divObj.nodeName);  // 节点名 DIV
    alert(divObj.nodeType);  // 节点类型 1
    alert(divObj.nodeValue); // 节点值 null

    // id=”div01” 是属性节点
    var idNode = divObj.getAttributeNode("id");
    alert(idNode.nodeName);    // 节点名  id
    alert(idNode.nodeType);   // 节点类型 2
    alert(idNode.nodeValue); // 节点值  属性值 div01

    // hello world 是文本节点
    var textNode = divObj.firstChild;
    alert(textNode.nodeName);   // 节点名  #text
    alert(textNode.nodeType);   // 节点类型 3
    alert(textNode.nodeValue);  // 节点值  文本内容
    }
</script>
    </head>
    <body>
    <div id="div01">hello world</div>
    </body>
    </html>

★★二、Document中查找标签dom对象的三种方法

<一>document.getElementById(elementId)

通过标签的id属性查找标签dom对象,elementId是标签的id属性值
<二>document.getElementsByName(elementName)

通过标签的name属性查找标签dom对象,elementName标签的name属性值

<三>document.getElementsByTagName(tagname)

通过标签名查找标签dom对象。tagname是标签名


(1)使用document.getElementById(elementId)获取dom对象

如:使用document.getElementById(elementId)

例:表单提交时验证账号输入是否合法 (通过byId获取dom对象然后使用)

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript">

// 页面加载完成之后
window.onload = function() {

    //我们要操作所有的标签对象都要分两步
    // 1.先获取标签对象
    var usernameObj = document.getElementById("username");

    // 2.操作标签对象的属性或者方法
    alert("修改原用户为我已经改变);

    usernameObj.value = "我已经改变";
         //  usernameObj.type="password";

这里效果如下:
这里写图片描述
// 获取button按钮的标签对象
var buObj = document.getElementById(“bu01”);

    // 动态给按钮绑定单击事件 
    buObj.onclick = function() {

        //我们希望点击按钮之后。获取用户名输入框里的文本内容做合法性验证
        // 验证用户名必须由字母,字母,下划线组成。并且长度是6到15位

        //1.先获取标签对象
        var usernameObj = document.getElementById("username");

        //2.通过标签对象.value获取输入框里的文本内容
        var usernameObjText = usernameObj.value;

        //3.我们创建一个正则对象去验证
        var patt = /^\w{6,15}$/;//只能为数字或字母或下划线6-15位

        var result = patt.test(usernameObjText);

        //4.提示用户
        var spanObj = document.getElementById("usernameSpan");
        // innerHTML

        if (result) {

// alert("用户名合法");添加图片显示效果
            spanObj.innerHTML = "<img alt='' width='15' height='15' src=\"right.png\"/>";

不合法效果如下:
这里写图片描述
} else {
// alert(“用户名不合法”);添加图片显示效果
spanObj.innerHTML = “ width='15' height='15' src=\”;
}
}
}

合法效果如下:
这里写图片描述

</script>
</head>
<body>
用户名:<input id="username" type="text" value="7abc"/>
<span id="usernameSpan" style="color: red;"></span><br/>
密码:&nbsp;&nbsp;&nbsp;<input id="password" type="password" /><br />
<button id="bu01">提交</button>
</body>
</html>

(2)使用document.getElementsByName(elementName)获取dom对象

如:使用document.getElementsByName(elementName)

简单说明:

实现多选按钮的checkBox 的 全选 全不选 反选功能如下>>>>

//页面加载完成之后做如下测试:

window.onload = function() {

// 通过name属性查找所有的标签对象

var hobbyObjs = document.getElementsByName(“hobby”);

// getElementsByName方法查找的是name属性,返回的是一个集合,

// 我们对这个集合的操作,也就是获取其中的元素跟数组一样

// 这个集合中的元素出现的顺序

就是这些标签在html页面中从上到下出现的顺序可以做如下测试

// alert(hobbyObjs.length); 结果:4

// alert(hobbyObjs); 结果:Object noteList

// var checkBoxObj = hobbyObjs[3];

// alert(checkBoxObj.checked); 结果:true

// checkBoxObj.checked = true;

}

实现三个选择功能如下:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript">

//①全选功能
function checkAll(){

    //1.先获取要操作所有的标签对象input type=checkbox
    var hobbyObjs = document.getElementsByName("hobby");

    //alert(hobbyObjs.length);

效果:
这里写图片描述
//alert(hobbyObjs);
效果:

这里写图片描述
//2.遍历所有的标签对象,获取到每一个input type=checkbox
for (var i = 0; i < hobbyObjs.length; i++) {
var hobbyObj = hobbyObjs[i];

        //3.修改每一个复选框标签对象的checked属性值为true
        hobbyObj.checked = true;
    }
}

//②全不选功能
function checkNoAll(){

    //1.先获取要操作所有的标签对象input type=checkbox
    var hobbyObjs = document.getElementsByName("hobby");

    //2.遍历所有的标签对象,获取到每一个input type=checkbox
    for (var i = 0; i < hobbyObjs.length; i++) {
        var hobbyObj = hobbyObjs[i];

        //3.修改每一个复选框标签对象的checked属性值为false
        hobbyObj.checked = false;
    }
}

//③反选功能
function checkReverse(){

    //1.先获取要操作所有的标签对象input type=checkbox
    var hobbyObjs = document.getElementsByName("hobby");

    //2.遍历所有的标签对象,获取到每一个input type=checkbox
    for (var i = 0; i < hobbyObjs.length; i++) {

    //3.修改每一个复选框标签对象的checked属性值为相反状态    
        var hobbyObj = hobbyObjs[i];
        hobbyObj.checked = !hobbyObj.checked;
    }
}
</script>
</head>
<body>
兴趣爱好:
<input name="hobby" type="checkbox" value="c" checked="checked" />C
<input name="hobby" type="checkbox" value="cpp"/>C++
<input name="hobby" type="checkbox" value="java"/>java
<input name="hobby" type="checkbox" value="csharp"/>C#
<button onclick="checkAll()">全选</button>
<button onclick="checkNoAll()">全不选</button>
<button onclick="checkReverse()">反选</button>
</body>
</html>

(2)使用document.getElementsByTagName(tagname)获取dom对象

例:使用document.getElementsByTagName(tagname)

实现全选功能:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript">

// 页面加载完成之后
window.onload = function(){
// 通过标签名查找所有给定标签名的对象集合
//      var inputObjs = document.getElementsByTagName("input");

// getElementsByTagName方法返回的也是对象集合。
// 我们要获取这个集合中的元素,可以像数组一样操作。通过下标获取

//      alert(inputObjs);
//      alert(inputObjs.length);

//查找所有button按钮
    var buttonObjs = document.getElementsByTagName("button");

//      alert(buttonObjs.length);  测试长度

    var buttonObj = buttonObjs[0];

    buttonObj.onclick = function(){
        //1.先获取标签对象
        var inputObjs = document.getElementsByTagName("input");

        //2.遍历修改每一个标签对象的checked的属性为true
        for (var i = 0; i < inputObjs.length; i++) {
            inputObjs[i].checked = true;
        }
    }
}

function abc(){
    var hobbyObjs = document.getElementsByName("hobby");
    alert(hobbyObjs.length);
}

</script>
</head>
<body>

    <input name="hobby" type="checkbox" value="c" checked="checked" />C
    <input type="checkbox" value="cpp"/>C++
    <input type="checkbox" value="java"/>java
    <input type="checkbox" value="csharp"/>C#

<button>全选</button>
</body>
</html>

效果:

这里写图片描述

### 回答1: `document.getElementsByTagName` 是一个 JavaScript 方法,它可以返回一个包含指定标签名的所有元素的集合(类数组)。这个方法接收一个参数,即要获取的元素的标签名,例如 "div"、"p"、"a" 等。它会在文档中搜索所有符合指定标签名的元素,并将它们全部存储在一个类数组对象中返回。可以使用该方法来操作或修改文档中指定标签名的元素。 ### 回答2: document.getElementsByTagNameJavaScript 中的一个方法,它的作用是通过标签名称获取文档中所有具有相同标签名称的元素。 当我们在 HTML 文档中使用标记语言编写页面时,我们会使用不同的标签来定义不同类型的元素,例如 `<div>`、`<p>`、`<span>` 等等。document.getElementsByTagName 方法可以通过指定标签名称,返回一个包含所有与该标签匹配的元素的 HTMLCollection 对象。 HTMLCollection 是一个类似数组的对象,它包含了与给定标签名称匹配的所有元素。这意味着我们可以通过访问 HTMLCollection 对象的索引来获取特定位置的元素,或者通过迭代 HTMLCollection 来遍历其中的所有元素。我们可以使用这些元素做一些操作,例如修改元素的内容、样式或属性。 通过 document.getElementsByTagName 方法可以非常方便地选择和操作文档中的多个元素,无需一个一个手动获取和处理,减少了工作的复杂性和时间成本。这个方法在处理一些重复结构和具有相同标签的元素时非常有用,例如处理多个 `<div>` 元素,或者获取 `<p>` 元素的数量等。 ### 回答3: document.getElementsByTagNameJavaScript中的方法,用于通过标签名获取文档中所有对应标签的元素。 document代表当前HTML文档对象,是访问和操作HTML页面的入口。 getElementsByTagName是getElementsByTagName方法的一部分,其中的“ByTagName”表示通过标签名来筛选元素。 通过使用document.getElementsByTagName方法,我们可以按照标签名获取文档中所有对应的元素,并将它们以HTMLCollection(HTML元素的集合)的形式返回。 例如,如果我们使用document.getElementsByTagName("div"),则会返回文档中所有的<div>元素。同样,如果我们使用document.getElementsByTagName("p"),则会返回文档中所有的<p>元素。 返回的HTMLCollection是一个类似数组的对象,可以通过索引来访问其中的元素。可以通过遍历这个集合,对集合中的元素进行操作,例如修改元素的内容、样式等。 需要注意的是,返回的HTMLCollection是一个动态的集合,这意味着当文档中的相关元素改变时,返回的集合也会自动更新。 总结来说,document.getElementsByTagName方法允许我们根据标签名选择页面中的元素,并以HTMLCollection的形式返回,方便我们对这些元素进行操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值