为了账号安全,请及时绑定邮箱和手机立即绑定

请教大神这样为什么输出不了重置?

<!DOCTYPE HTML>

<html>

<head>

<meta http-equiv="Content-Type" Content="text/html; charset=utf-8" />

<title>javascript</title>

<style type="text/css">

body{font-size:12px;}

#txt{

    height:400px;

    width:600px;

border:#333 solid 1px;

padding:5px;}

    .n{

    height:400px;

    width:600px;

    border:#333 solid 1px;

padding:5px;}

    

p{

line-height:18px;

text-indent:2em;}

</style>

</head>

<body>

  <h2 id="con">JavaScript课程</H2>

  <div id="txt"> 

     <h5>JavaScript为网页添加动态效果并实现与用户交互的功能。</h5>

        <p>1. JavaScript入门篇,让不懂JS的你,快速了解JS。</p>

        <p>2. JavaScript进阶篇,让你掌握JS的基础语法、函数、数组、事件、内置对象、BOM浏览器、DOM操作。</p>

        <p>3. 学完以上两门基础课后,在深入学习JavaScript的变量作用域、事件、对象、运动、cookie、正则表达式、ajax等课程。</p>

  </div>

  <form>

  <!--当点击相应按钮,执行相应操作,为按钮添加相应事件-->

    <input type="button" onClick="b()"value="改变颜色" >  

    <input type="button" onClick="c()"value="改变宽高" >

    <input type="button" onClick="d()"value="隐藏内容" >

    <input type="button" onClick="e()"value="显示内容" >

    <input type="button"onClick="f()" value="取消设置" >

  </form>

  <script type="text/javascript">

   var a=document.getElementById("txt");


//定义"改变颜色"的函数

function b(){

  a.style.color="red";

  a.style.backgroundColor="#ccc"; 

}


//定义"改变宽高"的函数

function c(){

  a.style.width="20px";

  a.style.height="30px"; 

}


//定义"隐藏内容"的函数

function d(){

a.style.display="none";

}


//定义"显示内容"的函数

function e(){

a.style.display="block";

}


//定义"取消设置"的函数

function f(){

    var a=confirm("是否取消设置")

if(a==true){ 

    var p1 = document.getElementById("txt");

p1.className="n"}}

  </script>

</body>

</html>


正在回答

6 回答

这些样式在点击过相应的按钮后,会逐一添加到属性style中,到最后style的属性有颜色,宽高,显示样式,结果就是 <div id="txt" style="color: red; background-color: rgb(204, 204, 204); width: 20px; height: 30px; display: block;" >

你最后的按钮会在 <div id="txt">中添加一个class属性,结果就是 <div id="txt" style="color: red; background-color: rgb(204, 204, 204); width: 20px; height: 30px; display: block;" class="n">

现在就涉及到选择器的优先级问题了,行内样式>id>class,现在明白了吗,你可以用firebug调试一下,看看你想象的样式和实际的样式差在哪里,导致差异的原由慢慢你就会找到的。


0 回复 有任何疑惑可以回复我~
#1

三水朝山 提问者

可以用最高级调用,谢谢了。明白了选择器优先级忘记
2016-05-19 回复 有任何疑惑可以回复我~
 .n{
    height:400px;
    width:600px;
    border:#333 solid 1px;
padding:5px;
}/*没有重置到原来的原因应该时文字还是红色、有背景色,主要是因为这里的style设置没有复制全部的。
你可以在这个后面加上"color:blue";看下效果就知道乐- -。*/


0 回复 有任何疑惑可以回复我~
#1

三水朝山 提问者

加了还是没变.....
2016-05-19 回复 有任何疑惑可以回复我~
#2

吾王最爱的加菲猫 回复 三水朝山 提问者

我又试了试,确实不能回复改变,原因应该和上面说的一样,.class的优先级小于#id
2016-05-19 回复 有任何疑惑可以回复我~
#3

三水朝山 提问者 回复 吾王最爱的加菲猫

我加了!important最优先级也没用
2016-05-19 回复 有任何疑惑可以回复我~

方法的思路是可以用的,稍等我给你贴个代码,主要原因是因为你样式改变的对象不对


0 回复 有任何疑惑可以回复我~
#1

三水朝山 提问者

好的谢谢
2016-05-19 回复 有任何疑惑可以回复我~
//定义"取消设置"的函数
function cancelChange(){
    var message = confirm("是否取消设置?");
    if(message == true) document.getElementById("txt").style = "#txt";
}

把style重新改回css里写好的#txt就行了

0 回复 有任何疑惑可以回复我~
#1

三水朝山 提问者

后面.style = "#txt"没学过不懂意思
2016-05-19 回复 有任何疑惑可以回复我~

已经用Object.style.xxx="yyy";的语句将属性值改了,获取的是改变后的值。没意义么!

0 回复 有任何疑惑可以回复我~
#1

三水朝山 提问者

是后面的重置,把之前的属性复制一遍,然后借类的方式,让取消设置按键调用复制过的类,不行吗?
2016-05-19 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

请教大神这样为什么输出不了重置?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信