JS访问Web页面的元素

1. 访问特定元素

     document.getElementById('id')

2. 根据元素名访问

     document.getElementsByTagName('img')

     值得注意的是,上述返回的是一个类数组NodeList,他是一个特殊的集合,动态的集合,不是一个Array对象,因此不能对其使用数组方法,例如push()等。NodeList的唯一属性是length,其唯一的方法是item(),该方法接收一个数值参数作为索引,返回该位置的元素

var imgs = document.getElementsByTagName('img');
        imgs.item(3);
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
</head>
<body>
    <p><img src="001.jpg" alt="xxx" /></p>
    <p><img src="002.jpg" alt="xxx" /></p>
    <p><img src="003.jpg" alt="xxx" /></p>
    <script>
        var imgs = document.getElementsByTagName('img');
        console.log(imgs.length);//3
        var p = document.createElement('p');
        var img = document.createElement('img');
        img.src = "haha.jpg";
        p.appendChild(img);

        var paras = document.getElementsByTagName('p');
        paras.item(0).parentNode.appendChild(p);
        console.log(imgs.length);//4
        console.log(paras.length);//4
    </script>
</body>
</html>

3. 使用Selects API

选择器查询API方法
                          方法 
document.querySelector()返回匹配选择器的第一个结果
document.querySelectorAll()返回选择匹配其的所有结果

值得注意的是,选择器语法派生自支持CSS选择器的语法。

4. 设置元素的CSS样式属性

document.getElementById('id').style.backgroundColor = 'white';
        document.getElementById('id').setAttribute("style", "属性:属性值;...");
        document.getElementById('id').setAttribute("className", "class1");
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
    <style>
        .class1{
            background-color:red;
            font-size:20px;
        }
    </style>
</head>
<body>
    <p id="p1">这是一个小小的测试</p>
    <script>
        var p1 = document.getElementById('p1');
        //方式一
        //p1.style.backgroundColor = 'red';
        //p1.style.fontSize = '20px';
        //方式二
        //p1.setAttribute('style', 'background-color:red;font-size:20px');
        //方式三
        p1.setAttribute("class", "class1");
        
        //方式四
        //var styleAttr = document.createAttribute("style");
        //styleAttr.nodeValue = "background-color:red";
        //p1.setAttribute(styleAttr);
    </script>
</body>
</html>

5. 对无序列表应用条纹主题

<body>
    <ul id="u1">
        <li>111</li>
        <li>222</li>
        <li>333</li>
        <li>444</li>
    </ul>
    <script>
        var list = document.querySelectorAll('li');
        for (var i = 0; i < list.length; i++) {
            list[i].setAttribute('style', "background-color:red");
        }
    </script>
</body>

6. 找出共享同一属性的所有元素

document.querySelectorAll('*[class]')//选择了所有包含属性的元素
        document.querySelectorAll('*[class="class1"]')//选择了所有class属性为red的所有元素
        document.querySelectorAll('*[class*="class1"')//选择所有class属性包含字符串class1的所有元素

7. 给新的段落添加文本

<body>
    <ul id="u1">
        <li>222</li>
        <li>222</li>
        <li>333</li>
        <li></li>
    </ul>
    <script>
        var list = document.querySelectorAll('li');
        for (var i = 0; i < list.length; i++) {
            list[i].setAttribute('style', "background-color:red");
        }
        var li = document.querySelectorAll('li')[3];
        var txt = document.createTextNode("this is a example");
        li.appendChild(txt);
    </script>
</body>

8. 从HTML表格删除行

     当从Web文档删除一个元素的时候,不仅会删除该元素,而且还会删除其所有的子元素。若想要在完全丢弃被删除的元素之前来处理其内容的话,在这个DOM删改中,可以获取对要删除的元素的一个引用。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
    <style>
        table{
            border-collapse:collapse;
        }
        td,th{
            padding:5px;
            border:1px solid #ccc;
        }
        tr:nth-child(2n+1){
            background-color:#eeffee;
        }
    </style>
</head>
<body>
    <table id="table1">
        <tr>
            <th>标题1</th>
            <th>标题2</th>
            <th>标题3</th>
            <th>标题4</th>
        </tr>
    </table>
    <div id="result"></div>
    <script>
        var values = new Array(4);
        values[0] = [32, "hahh", 78.3, 90];
        values[1] = ["ddd", "ioi", "89", 78];
        values[2] = ["898", "dgs", "yuiu", "hdsh"];
        values[3] = ["uiui", 89.67, "hdsjhj", "jdiso"];

        var mixed = document.getElementById("table1");
        var tbody = document.createElement("tbody");

        for (var i = 0; i < values.length; i++) {
            var tr = document.createElement("tr");

            for (var j = 0; j < values[i].length; j++) {
                var td = document.createElement("td");
                var txt = document.createTextNode(values[i][j].toString());
                td.appendChild(txt);
                tr.appendChild(td);
            }

            //绑定事件处理程序
            tr.onclick = prunerow;

            tbody.appendChild(tr);
            mixed.appendChild(tbody);
        }

        function prunerow() {
            //删除行
            var parent = this.parentNode;
            var oldrow = parent.removeChild(this);

            //来自删除行的数据的datastring
            var datastring = "";
            for (var i = 0; i < oldrow.childNodes.length; i++) {
                var cell = oldrow.childNodes[i];
                datastring += cell.firstChild.data + "";
            }
            //输出消息
            var msg = document.createTextNode("removed " + datastring);
            var p = document.createElement("p");
            p.appendChild(msg);
            document.getElementById('table1').appendChild(p);
        }
    </script>
</body>
</html>

9. 添加一个页面覆盖

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
    <style>
        table{
            border-collapse:collapse;
        }
        td,th{
            padding:5px;
            border:1px solid #ccc;
        }
        tr:nth-child(2n+1){
            background-color:#eeffee;
        }
        .overlay{
            background-color:#000;
            opacity:-5;
            filter:alpha(opacity=50);
            position:fixed;
            top:0;
            left:0;
            width:100%;
            height:100%;
            z-index:10;
        }
        .overlaymsg{
            position:absolute;
            background-color:yellow;
            padding:10px;
            width:200px;
            height:200px;
            font-size:2em;
            z-index:11;
            top:50%;
            left:50%;
            margin-left:-100px;
            margin-top:-100px;
        }
    </style>
</head>
<body>
    <table id="table1">
        <tr>
            <th>标题1</th>
            <th>标题2</th>
            <th>标题3</th>
            <th>标题4</th>
        </tr>
    </table>
    <div id="result"></div>
    <script>
        var values = new Array(4);
        values[0] = [32, "hahh", 78.3, 90];
        values[1] = ["ddd", "ioi", "89", 78];
        values[2] = ["898", "dgs", "yuiu", "hdsh"];
        values[3] = ["uiui", 89.67, "hdsjhj", "jdiso"];

        var mixed = document.getElementById("table1");
        var tbody = document.createElement("tbody");

        for (var i = 0; i < values.length; i++) {
            var tr = document.createElement("tr");

            for (var j = 0; j < values[i].length; j++) {
                var td = document.createElement("td");
                var txt = document.createTextNode(values[i][j].toString());
                td.appendChild(txt);
                tr.appendChild(td);
            }

            //绑定事件处理程序
            tr.onclick = prunerow;

            tbody.appendChild(tr);
            mixed.appendChild(tbody);
        }

        function prunerow() {
            //删除行
            var parent = this.parentNode;
            var oldrow = parent.removeChild(this);

            //来自删除行的数据的datastring
            var datastring = "";
            for (var i = 0; i < oldrow.childNodes.length; i++) {
                var cell = oldrow.childNodes[i];
                datastring += cell.firstChild.data + "";
            }
            //输出消息
            var msg = document.createTextNode("removed " + datastring);
            var p = document.createElement("p");
            p.appendChild(msg);
            document.getElementById('table1').appendChild(p);
        }

        //创建覆盖
        function displayPopup() {
            var div = document.getElementById('result');
            div.setAttribute("class", "overlay");

            //创建图像
            var msg = document.createElement("div");
            var txt = document.createTextNode("please join our mailing list!(click to close.)");
            msg.appendChild(txt);
            msg.setAttribute("id", "msg");
            msg.setAttribute("class", "overlaymsg");

            //单击以恢复页面
            msg.onclick = restore;
            //将消息附加到覆盖
            document.body.appendChild(msg);
        }
        //将页面恢复正常
        function restore() {
            document.body.removeChild(document.getElementById("result"));
            document.body.removeChild(document.getElementById("msg"));
            document.body.removeChild(document.getElementById("table1"));
        }

        window.onload = function () {
            displayPopup();
        }
    </script>
</body>
</html>

 

### 回答1: 我不太明白您的问题,请问您是想了解如何使用 JavaScript 在 web 浏览器中生成 ES 元素吗?如果是的话,您可以尝试使用以下代码: ```javascript // 创建一个新的 ES 元素 var esElement = document.createElement("es"); // 给 ES 元素设置属性 esElement.setAttribute("属性名", "属性值"); // 将 ES 元素添加到 HTML 中的某个元素document.getElementById("你想添加到的元素的 ID").appendChild(esElement); ``` 需要注意的是,ES 元素并不是 HTML 标准中的元素,因此在浏览器中可能无法正确地渲染。如果您需要在浏览器中使用自定义元素,可以考虑使用 Web Components 技术。 ### 回答2: 当在web浏览器中点击生成es元素时,通常表示用户在网页中与某个特定元素进行交互,并通过浏览器的功能来生成或创建一个新的es元素。以下是可能的场景和步骤: 1. 定位元素:用户首先使用浏览器的检查元素工具或其他开发调试工具来确定他们希望操作或生成的特定元素。这可以是一个标签,如<div>或<span>,或者是一个具有唯一id或类名的特定元素。 2. 选项和操作:在找到目标元素后,用户可能通过右键单击或选择相关菜单选项来调用浏览器的特定功能。浏览器通常会提供一些操作,如生成、克隆、编辑或删除元素。 3. 生成es元素:通过选择生成的选项,用户可以根据需要在指定的位置生成或创建一个es元素。这可能涉及到填写某些属性或内容,如类名、id、文本或链接。 4. 结果展示:一旦用户确认并点击生成es元素的操作,浏览器将会根据用户的输入和选择在网页上动态生成该元素。用户可以立即看到生成的结果,并通过其他操作对其进行自定义或修改。 需要注意的是,生成es元素的具体步骤和功能可能会因不同的浏览器和开发工具而有所不同。此外,生成的元素可能只在当前浏览器会话中有效,关闭浏览器后可能会被重置或清除。因此,如果需要持久化或公开展示这些生成的es元素,用户可能需要采取适当的措施和开发工具。 ### 回答3: 当用户在web浏览器中点击生成ES元素时,实际上是触发了一系列事件和操作。 首先,浏览器会获取用户的点击事件,并将其传递给相应的处理程序。处理程序可以是一个事件监听器或其他JavaScript函数,用于处理用户点击事件。 然后,处理程序会执行一些操作来生成ES元素。这可能涉及到创建一个新的DOM元素,如使用document.createElement()方法创建一个div元素。然后,可以设置该元素的属性、样式等,以满足特定需求。 接下来,处理程序需要将生成的ES元素添加到页面中。这可以通过调用document.body.appendChild()方法将元素添加到文档的body标签中。如果希望把元素添加到特定的父元素下,可以使用父元素的appendChild()方法。 最后,当元素成功添加到页面中后,浏览器会重新渲染页面,以显示新生成的ES元素。这将导致用户能够在浏览器中看到生成的元素。 总结而言,当用户在web浏览器中点击生成ES元素时,浏览器通过事件处理程序生成一个新的DOM元素,并将其添加到页面中,以显示给用户。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值