jQuery改变单个元素属性问题

简介: div嵌套div改变外层div字体颜色保留内层div字体颜色出现同时改变的情况解决方案

今天在做练习的时候,遇到了一个问题:
我做了一个div的嵌套,外层div包裹内层div,在完成其他功能的时候都正常,但是到了改变div内文字颜色的时候出了问题,我只打算改变外层div的文字颜色为白色,但当我点击按钮时,内外层文字颜色同时改变了,我试过将内层文字的颜色清楚,但是不行,还是被改变了。
jQuery元素筛选 - 用户配置 1 - Microsoft​ Edge 2023_9_27 1_21_25.png
对应的html代码为:

<p>div控制器</p>
    <button id="divbtn1">改变内层div的颜色为黄色</button>
    <button id="divbtn2">改变内层div文字居中</button>
    <button id="divbtn3">改变外层div字体颜色为白色</button>

    <hr>
    <div id="divfarther">这是最外层的div
        <div id="chiden">这是内层div</div>
    </div>

对应的jQuery代码为:


$(document).ready(function(){
   
   



            $("#divbtn3").click(
                function(){
   
   


                    $("#divfarther").css("color","white");

                    alert("文字颜色已更改");
                }
            );

            $("#divbtn1").click(function(){
   
   

                $("#chiden").css("background-color","yellow");
                alert("更改完成")
            });

            $("#divbtn2").click(
                function(){
   
   

                    $("#chiden").css("text-align","center");
                    alert("文字已居中");
                }
            );

        });

或:


$(document).ready(function(){
   
   



            $("#divbtn3").click(
                function(){
   
   


                    $("#divfarther").css("color","white");
                    $("#chiden").css("color","");
                    alert("文字颜色已更改");
                }
            );

            $("#divbtn1").click(function(){
   
   

                $("#chiden").css("background-color","yellow");
                alert("更改完成")
            });

            $("#divbtn2").click(
                function(){
   
   

                    $("#chiden").css("text-align","center");
                    alert("文字已居中");
                }
            );

        });

以上代码都不行,因为css又继承性,所以要把元素设置为默认状态
在chiden的color上改为initial
如以下jQuery代码


$(document).ready(function(){
   
   



            $("#divbtn3").click(
                function(){
   
   


                    $("#divfarther").css("color","white");
                    $("#divfarther > #chiden").css("color","initial");

                    alert("文字颜色已更改");
                }
            );

            $("#divbtn1").click(function(){
   
   

                $("#chiden").css("background-color","yellow");
                alert("更改完成")
            });

            $("#divbtn2").click(
                function(){
   
   

                    $("#chiden").css("text-align","center");
                    alert("文字已居中");
                }
            );

        });

以下是效果图
jQuery元素筛选 和另外 1 个页面 - 用户配置 1 - Microsoft​ Edge 2023_9_27 1_19_50.png
完美解决!

目录
相关文章
|
1月前
|
JavaScript
jQuery - 添加元素
通过 jQuery,可以很容易地添加新元素/内容。
43 10
|
1月前
|
XML JavaScript 数据格式
jQuery - 获取内容和属性
jQuery 拥有可操作 HTML 元素和属性的强大方法。
36 6
|
1月前
|
存储 JavaScript 前端开发
jQuery 对属性的操作
【10月更文挑战第8天】
|
2月前
|
XML JavaScript 数据格式
jQuery - 获取内容和属性
jQuery - 获取内容和属性
26 5
|
2月前
|
JavaScript 前端开发
jQuery - 添加元素
jQuery - 添加元素
20 2
|
2月前
|
JavaScript IDE 开发工具
jQuery - 获取内容和属性2
jQuery - 获取内容和属性2
19 3
|
2月前
|
JavaScript
jQuery - 设置内容和属性
jQuery - 设置内容和属性
59 2
|
2月前
|
JavaScript
jQuery - 设置内容和属性
jQuery - 设置内容和属性
55 14
|
2月前
|
XML JavaScript 数据格式
jQuery - 获取内容和属性
jQuery - 获取内容和属性
58 12
|
2月前
|
JavaScript 前端开发
jQuery - 添加元素
jQuery - 添加元素
26 6