文章目录
  1. 1. css优先级的问题
  2. 2. document.write的问题

  最近照着慕课网的JavaScript教程对JavaScript进行了一次复习,过程中有一些小知识点的完善。

css优先级的问题

  在JavaScript入门篇4-1的编程挑战中,题目要求是这样的:

  小伙伴们,请编写”改变颜色”、”改变宽高”、”隐藏内容”、”显示内容”、”取消设置”的函数,点击相应按钮执行相应操作,点击”取消设置”按钮后,提示是否取消设置,如是执行操作,否则不做操作。

  对于取消设置的操作,我想用到前面学到的控制类名className属性,即在css中新设置一个控制类,让它和原本的样式相同,当按取消设置的时候,即可回到最初的状态。

            function cancle(){
                var a = confirm("确定要取消设置?");
                if(a == true){
                    text.className("oldStyle");
                }
            }

  可是我发现并没有达到预计的效果。纠结了挺久,通过输出text.className,发现已经改为了oldStyle,然而样式并没有改变,由此才想到了css优先级的问题!当在oldStyle中引入了 !important 后终于达到了所要的效果。但解决这个问题用 !important 并不是一个好的方式,在今后也要注意 !important绝不可随便使用。
  
  通过这次编程练习让我对css优先级有了切身的体会,虽然这个知识点已经看到过多次,但是在实际写代码中还是没有注意这些的概念。   

document.write的问题

  在一次编程练习中。我发现在JavaScript中写成下面两种方式产生的结果不同。

             window.onload=function(){
                 document.write("系好安全带,准备起航——JS");
                    }
 
             document.write("系好安全带,准备起航——JS");

  用第一种方式时,页面中本来的内容都不见了,仅有document.write中的内容,而用第二种方式时,页面中本来的内容和document.write中的内容都出现了。
  通过查资料,我知道了在页面加载后,浏览器的输出流会自动关闭,之后任何一个对当前页面进行操作的document.write()方法将打开一个新的输出流,将会清除当前页面的内容。
  而第二种方式是在页面加载过程中调用的document.write()方法,由于是边加载边呈现的,因此是在页面中追加的内容。

文章目录
  1. 1. css优先级的问题
  2. 2. document.write的问题