CS50 2021 lab8题解

cs50 lab8 solution

Posted by Lxsy on January 21, 2022

题目是要求我们做一个很基本的page,基本上大框架都已经给我们搭好了,实际上我们只需要去完善一些小细节,这里给出一些tips,具体的代码可以去我的github上查看:

(博主也是初学者,这是博主写的第一个网页23333,欢迎指正)

log

  • 在写C/C++时,我们常常使用printf来实现一个类似打log的功能,那实际上在web编程中也有类似的方式

  • 1
    
    console.log("hey!");
    
    • 这里引号里的东西可以做log的内容,然后在开发者工具里的console,我们可以看到这些log信息

querySelectorAll

  • 这个可以用来选中某一class的所有node

  • 在此题中,我们可以极大简化工作,对所有的错误选项button都标注为class=“incorrect”,然后再使用该函数

    • 1
      
      incorrect_button=document.querySelectorAll('.incorrect');
      
      • 注意这里选中的一个类,于是和其他的打#不一样
  • 该函数返回的对象是nodelist,我们可以通过incorrect_button[]去取用某些特定的node

    • index从0开始
  • incorrect_button.length:该类node共有多少个

JS改变CSS和HTML

  • 可以通过这样的语法,改变某个node的某种属性

    • 1
      
      incorrect_button[1](被选中的node).style.属性=新样式
      
  • 还可以改变HTML的段落内容

    • 那么这个时候,我们可以让它一开始没有文字,在出现某个时间后,才出现文字

      • 1
        2
        3
        4
        5
        6
        
        YesOrNo_message = document.querySelector('#message');
        correct_button.addEventListener('click',function()
        {
        	correct_button.style.background = "green";
            YesOrNo_message.innerHTML="Correct!";
        });
        
      • 1
        
        <p id = "message"></p>
        
        • 这里,本来p是空的,啥也没有的,然后在监听到click正确按钮之后 ,通过innerHTML方法,可以改变p的内容
        • 于是我们可以实现题设所说,如果点击正确的按钮在下面有文字提示