JavaScript---HTML标签的修改

目录

一、修改HTML标签内容

1.1innerHTML

1.2innerText

1.3textConetnt

二、修改标签属性

2.1setAttribute

2.2直接访问属性

2.3使用dataset对象操作自定义数据属性

三、修改标签样式

3.1使用style属性

3.2操作classList

3.3动态加载CSS文件

四、替换或删除标签

4.1replaceWith

4.2replaceChild()

4.3remove()

4.4removeChild()


一、修改HTML标签内容

1.1innerHTML

innerHTML能够识别HTML标签,会把传入的字符串解析成HTML结构

<!DOCTYPE html>
<html>

<body>
    <div id="myDiv">原始内容</div>
    <script>
        const div = document.getElementById('myDiv');
        div.innerHTML = '<p>新的 HTML 内容</p>';
    </script>
</body>

</html>

DOM效果

1.2innerText

innertText仅处理文本内容,会忽略HTML标签

(innerText会考虑元素的样式,因此只会获得可见文本)

<!DOCTYPE html>
<html>

<body>
    <div id="myDiv">原始内容</div>
    <script>
        const div = document.getElementById('myDiv');
        div.innerText = '新的文本内容';
    </script>
</body>

</html>

DOM效果

1.3textConetnt

textContent也用来处理文本内容,不过它不考虑元素的样式(不管是否可见),统统返回

<!DOCTYPE html>
<html>

<body>
    <div id="myDiv">
        <p>这是一个段落。</p>
        <span style="display: none;">隐藏的文本</span>
    </div>
    <script>
        const div = document.getElementById('myDiv');
        console.log('textContent:',div.textContent); 
        console.log('innerText:',div.innerText); 
    </script>
</body>

</html>

效果

二、修改标签属性

2.1setAttribute

setAttribute方法是一种通用的方式,用于为元素指定属性值

该方法接受两个参数第一个参数属性名第二个参数属性值

<!DOCTYPE html>
<html>

<body>
    <img id="myImage" src="old-image.jpg" alt="旧图片">
    <button onclick="changeImageAttributes()">修改图片属性</button>
    <script>
        function changeImageAttributes() {
            const img = document.getElementById('myImage');
            img.setAttribute('src', 'new-image.jpg');
            img.setAttribute('alt', '新图片');
        }
    </script>
</body>

</html>
  • 重要:“使用setAttribute方法可以设置任何属性,包括自定义属性
  • 例如,可以为元素添加自定义属性:“data-custom
const element = document.getElementById('myElement');
element.setAttribute('data-custom', '自定义属性值');

2.2直接访问属性

对于HTML标签标准属性,可以直接通过元素对象的属性名访问修改

<!DOCTYPE html>
<html>

<body>
    <a id="myLink" href="old-url.html">旧链接</a>
    <button onclick="changeLinkAttributes()">修改链接属性</button>
    <script>
        function changeLinkAttributes() {
            const link = document.getElementById('myLink');
            link.href = 'new-url.html';
            link.textContent = '新链接';
        }
    </script>
</body>

</html>

重要:“直接访问属性,只能访问修改HTML标准属性

2.3使用dataset对象操作自定义数据属性

HTML5引入了自定义数据属性(以data-开头的属性),可以使用dataset对象来访问和修改这些属性

<!DOCTYPE html>
<html>

<body>
    <div id="myDiv" data-color-custom="red" data-size="large">带有自定义数据属性的元素</div>
    <button onclick="changeDataAttributes()">修改自定义数据属性</button>
    <script>
        function changeDataAttributes() {
            const div = document.getElementById('myDiv');
            div.dataset.colorCustom = 'blue';
            div.dataset.size = 'small';
        }
    </script>
</body>

</html>

三、修改标签样式

3.1使用style属性

element.style.property = value;

  • element:要修改样式的HTML元素
  • property:CSS属性名
  • value:该属性对应的值

注意:“CSS属性名在JavaScript中需要使用驼峰命名法,例如background-color要写成backgroundColor

<!DOCTYPE html>
<html>

<body>
    <div id="myDiv">这是一个示例 div</div>
    <button onclick="changeStyle()">修改样式</button>
    <script>
        function changeStyle() {
            const div = document.getElementById('myDiv');
            div.style.color = 'red';
            div.style.fontSize = '24px';
            div.style.backgroundColor = 'yellow';
        }
    </script>
</body>

</html>

3.2操作classList

classList是一个更灵活且推荐使用的方式

常用方法:

  • add(class1,class2,...):为元素添加一个或多个类
  • remove(class1,class2,...):从元素中移除一个或多个类
  • toggle(class):如果元素有指定的类,就移除它;如果没有,就添加它
  • contains(class):检查元素是否包含指定的类
<!DOCTYPE html>
<html>

<head>
    <style>
        .highlight {
            color: white;
            background-color: blue;
            font-weight: bold;
        }

        .shrink {
            font-size: 12px;
        }
    </style>
</head>

<body>
    <div id="myDiv">这是一个示例 div</div>
    <button onclick="addClass()">添加类</button>
    <button onclick="removeClass()">移除类</button>
    <button onclick="toggleClass()">切换类</button>
    <script>
        function addClass() {
            const div = document.getElementById('myDiv');
            div.classList.add('highlight');
        }

        function removeClass() {
            const div = document.getElementById('myDiv');
            div.classList.remove('highlight');
        }

        function toggleClass() {
            const div = document.getElementById('myDiv');
            div.classList.toggle('shrink');
        }
    </script>
</body>

</html>

3.3动态加载CSS文件

通过创建<link>元素并将其添加到<head>中实现

<!DOCTYPE html>
<html>

<body>
    <div id="myDiv">这是一个示例 div</div>
    <button onclick="loadCSS()">加载 CSS 文件</button>
    <script>
        function loadCSS() {
            const link = document.createElement('link');
            link.rel = 'stylesheet';
            link.href = 'new-style.css';
            document.head.appendChild(link);
        }
    </script>
</body>

</html>

点击后,DOM效果如下:

四、替换或删除标签

4.1replaceWith

replaceWith()现代的替换元素的方式,它允许直接用一个新元素替换当前元素

<!DOCTYPE html>
<html>

<body>
    <p id="oldParagraph">这是旧的段落。</p>
    <button onclick="replaceElement()">替换元素</button>
    <script>
        function replaceElement() {
            const oldPara = document.getElementById('oldParagraph');
            const newPara = document.createElement('p');
            newPara.textContent = '这是新的段落。';
            oldPara.replaceWith(newPara);
        }
    </script>
</body>

</html>

点击按钮后我,DOM效果为:

4.2replaceChild()

replaceChild()传统的替换元素的方式,它需要在父元素上调用该方法来替换其子元素

<!DOCTYPE html>
<html>

<body>
    <div id="parentDiv">
        <p id="oldParagraph">这是旧的段落。</p>
    </div>
    <button onclick="replaceChildElement()">替换子元素</button>
    <script>
        function replaceChildElement() {
            const parent = document.getElementById('parentDiv');
            const oldPara = document.getElementById('oldParagraph');
            const newPara = document.createElement('p');
            newPara.textContent = '这是新的段落。';
            parent.replaceChild(newPara, oldPara);
        }
    </script>
</body>

</html>

4.3remove()

remove()现代的删除元素方式,它允许直接从DOM中移除当前元素

<!DOCTYPE html>
<html>

<body>
    <p id="myParagraph">这是要删除的段落。</p>
    <button onclick="removeElement()">删除元素</button>
    <script>
        function removeElement() {
            const para = document.getElementById('myParagraph');
            para.remove();
        }
    </script>
</body>

</html>

4.4removeChild()

removeChild()传统的删除元素方式,它需要在父元素上调用该方法来删除其子元素

<!DOCTYPE html>
<html>

<body>
    <div id="parentDiv">
        <p id="myParagraph">这是要删除的段落。</p>
    </div>
    <button onclick="removeChildElement()">删除子元素</button>
    <script>
        function removeChildElement() {
            const parent = document.getElementById('parentDiv');
            const para = document.getElementById('myParagraph');
            parent.removeChild(para);
        }
    </script>
</body>

</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是洋洋a

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值