zoukankan      html  css  js  c++  java
  • JavaScript笔记

    第一章 Js基础
    一、Js的特点
    1、JavaScript是一种基于对象的脚本语言
    2、JavaScript是在客户的浏览器上运行的
    3、JavaScript是一种解释语言,其源代码在客户端执行之前不需要经过编译,而是将文本格式的字符代码在客户端由浏览器解释执行。
    4、JavaScript需要浏览器支持、不需要服务器的支持
    二、Js编码的两种方式
    1、直接写在HTML页面里执行
    在HTML页面中直接写<script>标签,在标签内部直接写javaScript代码
    如:
    <script type="text/javascript">
    //在这里直接写JavaScript代码
    </script>
    2、写单独的javaScript文件,后缀名.js;在HTML中引入js文件执行
    新建.js文件,在文件中写JavaScript代码,写好之后再HTML中引入
    如:
    <script type="text/javascript" src="文件路径.js"></script>
    三、Js中的输出输入语句
    1、输出语句
    alert("要输出的内容");//以弹窗形式进行输出
    document.write("要输出的内容");//在HTML文档中直接写入内容
    2、输入语句
    Prompt("提示语句","默认值");//以弹窗形式,接收用户输入的值,不建议使用
    通过表单元素进行输入(后续章节讲述)
    四、Js的注释
    1、单行注释 //
    2、多行注释 /* */
    五、变量和数据类型
    1、变量的定义
    语法: var 变量名; 变量名=值; 或 var 变量名=值;
    Tips: JS是一个弱类型的语言,所有变量的数据类型都可以用var关键字来定义
    变量的数据类型,取决于我们给变量赋的值,用typeof()查看变量的数据类型

    2、JS的数据类型
    1)基本数据类型
    数值数据类型(number)
    布尔类型(boolean)
    未定义数据类型(undefined)
    空数据类型(null)
    2)引用数据类型
    字符串类型(string)
    Array数组类型
    对象类型(Object)
    六、数据类型的转换
    1、隐式转换(自动转换) 一般情况除了字符串转数值,都是隐式转换
    2、显示转换(强制转换) 主要用于字符串转换为数值类型
    1)字符串转换为整数:parseInt(String) 会舍弃小数部分
    2)字符串转换为小数:parseFloat(String) 会舍弃遇到的第一个不是数字后面的元素
    七、运算符和表达式
    算术运算符: + - * /(除) %(取余) ++ -- -(取反)
    比较运算符: > >= < <= == != ===(绝对等于) !==(不绝对等于)
    ===(绝对等于):数据类型一致,数值相等
    !==(不绝对等于):数据类型不一致 或 数值不相等 或 数据类型不一致,数值也不相等
    逻辑运算符: ||(或) &&(与) !(非)
    条件运算符: 判断条件?条件成立时的返回值:条件不成立时的返回值

    第二章 Js语句和函数
    一、JS中的分支结构
    1、if分支
    语法:
    if(条件表达式){
    条件成立时执行的语句;
    }else{
    条件不成立时执行的语句;
    }
    注:1)可以只有if,没有else;但是不能只有else,没有if
    2)一个if只能对应一个else
    3)if是可以嵌套的
    4)有多重if,但是多重if有自己的语法
    2、多重if
    语法:
    if(条件1表达式){
    条件1成立时执行的语句;
    }else if(条件2表达式){
    条件2成立时执行的语句;
    }else if(条件N表达式){
    条件N成立时执行的语句;
    }else{
    前面的条件1-条件N都没有成立时,执行这里的语句
    }
    注:1)多重if的条件必须是对等的,且没有重合的
    2)多重if不管有多少个条件,程序只会选择其中的一条执行
    3)一旦程序匹配到合适的条件,后面的判断将都不在进行(要注意条件的顺序)
    3、switch-case结构
    语法:
    switch(常量){
    case 值1:
    常量值等于值1时,执行的代码;
    break;
    case 值2:
    常量值等于值2时,执行的代码;
    break;
    case 值N:
    常量值等于值N时,执行的代码;
    break;
    default:
    当前面的值1-值N都没有被匹配到,执行这里的代码;
    break;
    }
    Tips: 1)switch-case语句跟多重if-else类似,但是switch只能匹配常量,多重if-else可以匹配表达式
    2)switch-case语句跟多重if-else一样,一旦匹配到某个合适的值,后面的匹配都不再继续
    3)JavaScript中的switch中的常量不会进行自动转换,所以常量值必需和匹配的值绝对相等

    二、JS中循环结构
    循环的概念:在满足一定条件的情况下,重复性的做某一件事情,直到不符合条件时结束
    循环的四要素:
    1)循环的起点(开始条件)----定义变量初始值
    2)循环的终点(判断条件)----判断变量是否符合某个条件
    3)循环要做的事情(循环体)----需要重复执行的代码
    4)循环起点到终点的变化(循环变量的改变)----变量值的改变
    循环的执行顺序:1)-->2)-->3)-->4)-->2)-->3)-->4)-->2)循环会在2)的位置结束
    1、while循环
    语法:
    while(判断条件){
    条件成立时执行的要循环的语句;
    }

    2、do-while循环
    语法:
    do{
    循环体要执行的语句;
    }while(判断条件);
    while和do-while的区别:
    1)while循环是先判断,再执行循环体
    2)do-while循环是先执行do中的循环体,再判断条件是否成立
    3)所以,do-while循环循环体内的内容,至少会执行一次,而while循环里的内容,有可能一次也不会被执行

    3、for循环
    语法:
    for(①初始值;②循环判断条件;④变量值的改变){
    ③循环要做的事情(循环体)----需要重复执行的代码
    }
    Tips:1)for循环可以是空(死)循环for(;;){} ,但不建议这样写
    2)for循环中初始值可以写在for之前,变量的改变可以写在循环体内
    3)循环初始值、条件等可以是一个,也可以是多个,如果有多个初始值或条件,用逗号隔开
    4)循环也可以嵌套,嵌套时外层循环执行一次,里层循环执行一轮
    4、break和continue关键字
    break:跳出正在执行的循环结构
    continue:忽略后面的语句,从下一次循环开始执行
    Tips:break和continue主要用于循环控制
    作业:联合使用break和continue语句,求前10个偶数的和
    三、Js中的函数
    1、什么叫函数?
    JavaScript中的函数,类似于java或C#中的方法,是执行特定任务的语句块。当需要完成某种任务时,就可以把相关的语句组织成函数。
    2、Js中函数的定义
    语法:
    function 函数名([参数列表]){
    程序语句;
    [return 返回值]
    }
    3、函数的调用
    1)函数调用和表单元素的事件一起使用
    2) 调用格式为:事件名="函数名([实参])"
    4、使用函数的注意事项
    函数名区分大小写,且不能相同,更不能使用JavaScript的关键字。
    在function关键字之前不能指定返回值的数据类型。
    函数定义中[ ]是指可选的,也就是说,自定义的函数可以带参数,也可以不带参数。如果有参数,参数可以是变量、常量或表达式。自定义函数可以有返回值,也可以没有,如果省略了return语句,则函数返回undefined。
    函数的参数列表中不象Java一样指定参数的数据类型,只写参数量名字。
    参数列表中如果有多个参数,则各参数之间需要以“,”隔开。
    函数必须放在<script></script>标签之间。
    函数的定义最好放在网页的<head></head>部分或独立成*.JS文件。
    定义函数时并不执行组成该函数的代码,只有调用函数时才执行代码。
    5、Js中的内置函数
    1)parseInt (String)函数
    将字符串转换为整型数字
    如parseInt (“86.6”)将字符串“86.6”转换为整型值86
    2)parseFloat(String)函数
    将字符串转换为浮点型数字
    如parseFloat (“34.45”)将字符串“34.45”转换为浮点值34.45
    3)isNaN()函数
    判断一个变量或一个字符串是否为非数字。如果是返回true,否则则返回false。
    例如isNaN (“ab”)将返回true,isNaN(“12”)将返回false。
    4)eval()函数
    将一个字符串作为一段JavaScript表达式执行,并返回执行的结果。
    5)isFinite()函数
    检测一个是否无穷大,是返回true,否则false

    第三章 第四章 第五章 JavaScript对象
    一、开发JavaScript的基本流程
    布局--->确定要修改哪些属性-->确定用户进行哪些操作?-->编写代码
    1)属性
    属性是指对象包含的值,使用’对象名.属性名’的方式进行操作,如document.myfrom.first.value
    2)方法
    在代码里,使用’对象名.方法名()’来调用该对象的方法。
    alter(‘’)=Window.alter(‘’)
    3)事件
    响应用户操作、完成交互,如OnClick、OnKeyDown、onmouseover
    一般可以分为鼠标事件、键盘事件及其他事件
    二、JavaScript中的对象
    1)自定义对象
    ①使用Object关键字创建对象
    创建对象语法: var 对象名= new Object();
    使用对象:具体的对象名.属性=值;
    具体的对象名.行为名();


    ②使用function关键字创建对象
    创建对象语法:
    function 对象名(属性){
    this.属性名=属性名;
    this.行为名=function(){
    具体的行为;
    }
    }
    使用对象: var 具体的对象名=new 创建的对象名(具体的属性值);
    具体的对象名.属性=值;
    具体的对象名.行为名();

    2)JavaScript内置对象
    JavaScript将一些常用功能预先定义成对象,用户可以直接使用,这就是内置对象。
    如字符串对象、数学对象、日期对象、数组对象、正则表达式对象等
    ①字符串对象:
    length:返回字符串长度
    charAt(num):返回参数num指定索引处的字符
    charCodeAt(num):返回参数num指定索引处的字符的Unicode值
    indexOf(string[,num]):返回参数string在字符串中首次出现的位置
    lastIndexOf(string[,num]):返回参数string在字符串中最后出现的位置
    substring(index1[,index2]):返回字符串中index1和index2之间的字符串
    substr(index1[,num]):返回字符串中index1之后的num个字符
    toUpperCase():返回字符串大写形式
    toLowerCase():返回字符串小写形式
    split(reg,num):根据参数传入的正则表达式或者字符(串),将字符串分割成字符串数组
    replace(reg,string):根据参数传入的正则表达式或者字符(串),将字符串替换为新字符串
    search(string):返回参数string出现的位置
    ②数学对象:
    属性:
    LN10:返回10的自然对数
    LOG10E:返回以10为底的e的对数
    SQRT2:返回2的平方根
    PI:返回圆周率,约3.141592653…
    E:返回自然常量E,约2.718
    方法:
    random():返回 0 ~ 1 之间的随机数。[0,1)
    round(x):把数四舍五入为最接近的整数。
    sqrt(x):返回数的平方根。
    max(x,y)/min(x,y):返回 x 和 y 中的最大/小值。
    abs(x):返回x的绝对值。
    ceil(x)/floor(x):对数进行上/下舍入。
    log(x):返回数的自然对数(底为e)。
    pow(x,y):返回 x 的 y 次幂。
    sin(x)/asin(x):返回x的正弦/反正弦值。

    ③日期对象
    Date():返回当日的日期和时间。
    getDate():从 Date 对象返回一个月中的某一天 (1 ~ 31)。
    getDay():从 Date 对象返回一周中的某一天 (0 ~ 6)。
    getMonth():从 Date 对象返回月份 (0 ~ 11)。
    getFullYear():从 Date 对象以四位数字返回年份。
    getHours():返回 Date 对象的小时 (0 ~ 23)。
    getMinutes():返回 Date 对象的分钟 (0 ~ 59)。
    getSeconds():返回 Date 对象的秒数 (0 ~ 59)。
    getMilliseconds():返回 Date 对象的毫秒(0 ~ 999)。
    getTime():返回 1970 年 1 月 1 日至今的毫秒数。
    ④数组对象
    Array():数组对象是一系列有序的值的集合,可以存放任何类型的数据,建议只存放一种类型数据
    concat():将两个数组连接成新数组
    join():将数组中所有元素连接成字符串
    pop():移除数组的最后一个元素
    push():在数组最后添加一个元素
    unshift():在数组开始添加一个元素
    reverse():反转数组元素,倒叙
    shift():移除数组的第一个元素
    silce():获取子数组
    splice():插入、删除或替换数组中的元素
    sort():对数组排序
    ⑤正则表达式对象
    正则表达式主要用于表单验证,如手机号、邮箱、身份证等
    Ⅰ、在使用正则表达式之前,首先要创建正则表达式对象。JavaScript提供了两种构建方法:
    第一种:使用正则标识字符串
    var reg = /pattern/[flags]
    第二种:使用内置正则表达式对象
    var reg = new RegExp("pattern",["flags"])
    pattern表示要使用的正则表达式模式,也就是由的特殊字符或普通字符所组成的表达式。
    flags标志位,可选项,有g(全文查找)、i(忽略大小写)、m(多行查找)三种。
    Ⅱ、正则表达式的常用匹配规则
     :匹配单词边界
    d :匹配单个数字字符[0-9]
    f :匹配单个换页符
    :匹配单个换行符
    :匹配单个回车符
    s :匹配任何空白符,包括空格、制表符、换页符等[f v]
    :匹配单个制表符
    v :匹配单个垂直制表符
    w :匹配包含下划线的任意单词字符[0-9a-zA-Z_]
    ^、$ 匹配字符串的开始和结束位置
    * 匹配前面的子表达式0-多次
    + 匹配前面的子表达式1-多次
    ? 匹配前面的子表达式0-1次
    {n,m} 匹配前面的子表达式n-m次
    . 匹配除“ ”之外的任意字符
    (x|y) 匹配x或y
    [] 匹配所包含的任意一个字符
    [^] 匹配非包含的任意一个字符
    [-] 匹配指定范围内的任意一个字符
    Ⅲ、正则表达式的常用方法
    compile()方法。把正则表达式编译为内部格式,从而执行更快
    使用新正则去替换旧正则,主要用于提升比较复杂和耗时的处理过程的性能,一般情况下很少使用。
    exec()方法。用正则表达式在字符串中查找,并返回包含结果的一个数组。
    不仅用于判断给定的字符串是否匹配,而且会返回匹配结果的详细信息。
    test()方法。返回一个bool值,它指出被查找的字符串是否匹配给定的模式。
    使用频繁,主要用于匹配测试。匹配成功返回true,否则返回false。
    Ⅳ、正则表达式的一些常用匹配规则
    中文字符:/^[u4e00-u9fa5]+$/
    邮箱:/^[0-9a-zA-Z_]+@[0-9a-zA-Z_]+[.]{1}[0-9a-zA-Z_]+$/;
    电话:/^(d{3,4}-)?d{7,8}$/
    月份: /^((0?[1-9])|1[0-2])$/
    天数:/^((0?[1-9])|((1|2)[0-9])|30|31)$/
    3)浏览器内置对象
    浏览器对象是浏览器根据系统当前的配置和所装载的页面为JavaScript提供的一系列可供使用的对象。
    如Window对象、Document对象、History对象等
    ①Window对象
    属性:
    status :指定浏览器状态栏中显示的临时消息
    screen :有关客户端的屏幕和显示性能的信息。
    history :有关客户访问过的URL的信息。
    location :有关当前 URL 的信息。
    document :表示浏览器窗口中的HTML文档
    frames[] :window对象数组
    name :窗口的名称
    navigator :包含客户端浏览器的信息
    returnValue :设置新窗口返回值
    方法:
    alert("提示信息") 显示一个带有提示信息和确定按钮的对话框
    confirm("提示信息") 显示一个带有提示信息、确定和取消按钮的对话框
    prompt("提示信息") 显示一个带有提示信息和默认值的对话框
    open("url","name") 打开具有指定名称的新窗口,并加载给定 URL 所指定的文档;如果没有提供URL,则打开一个空白文档
    close( ) 关闭当前窗口
    showModalDialog( ) 在一个模式窗口中显示指定的HTML文档
    setTimeout("函数",毫秒) 设置定时器:延迟指定毫秒后执行某个函数
    setInterval("函数",毫秒) 设置定时器:间隔指定毫秒后重复执行某个函数
    onLoad事件 在窗口或框架完成文档加载时触发
    Tips: 通过模态窗口的returnValue属性,可以实现窗口的传值

    ②Document对象
    每个载入浏览器的HTML文档都会成为Document对象
    属性:
    alinkColor 用户单击该链接的颜色,body.alink
    linkColor 未被访问过的链接的颜色
    vlinkColor 被访问过的链接的颜色
    bgColor 文档背景颜色,backgroundcolor
    fgColor 文档前景色,即文本颜色
    title 文档标题,title
    cookie 设置或返回与文档有关的所有 cookie
    anchors[] 返回对文档中所有Anchor对象的引用
    forms[] 返回对文档中所有Form对象引用
    images[] 返回对文档中所有Image对象引用
    links[] 返回对文档中所有Area和Link对象引用
    方法:
    getElementById() 返回拥有指定 id 的第一个对象的引用
    getElementsByName() 返回带有指定名称的对象集合
    getElementsByTagName() 返回带有指定标签名的对象集合
    getElementsByClassName() 返回带有指定Class标签名的对象集合
    open() 产生一个新文档
    close() 结束或关闭open()方法打开的文档
    write() 向文档写HTML或JavaScript代码
    writeln() 等同于 write() 方法,不同的是在每个表达式之后写一个换行符。
    集合属性:
    Forms:Document对象的forms[]数组包含文档中的所有Form对象,数组里每个元素代表文档中的一个<form>标签
    由于每个表单都可能包含多个按钮、文本框、下拉框等表单元素,可以使用Form对象的elements[]属性来获取
    Images:Document对象的images[]包含文档中的所有Image对象数组,数组中每个元素代表文档中的一个<img>标签
    Image对象的src属性既可读又可写。可以通过这一属性获取图像的URL,还可以设置这一属性,使浏览器装载一个新图像并显示在同一地方。新图像最好与原始图像具有相同的宽度和高度,以防影响界面。
    Links/Anchors:Document对象的links[]包含文档中的所有Link对象,数组中每个元素代表一个<a href="">标签
    Document对象的anchors[]包含文档中的所有Anchor对象,数组中每个元素代表一个<a name="">标签
    ③History对象
    方法:
    back( ) :加载 History 列表中的上一个 URL --back ( )方法相当于后退按钮;
    forward( ) :加载 History 列表中的下一个 URL --forward ( ) 方法相当于前进按钮;
    go("url" or number) :加载 History 列表中的一个 URL或要求浏览器移动指定的页面数 --go(1)代表前进1页,等价于forward( )方法;go(-1) 代表后退1页,等价于back( )方法;

    ④Location对象
    属性:
    host :设置或检索位置或 URL 的主机名和端口号
    hostname :设置或检索位置或 URL 的主机名部分
    href :设置或检索完整的 URL 字符串
    方法:
    assign("url") :加载 URL 指定的新的 HTML 文档。
    reload() :重新加载当前页
    replace("url") :通过加载 URL 指定的文档来替换当前文档
    第六章 JavaScript事件及应用
    一、时间的注册
    1、将事件绑定到元素属性
    如:<input type="button" value="确定" onclick="show()" />


    2、将事件绑定到对象属性
    如:var btn = document.getElementById("btn");
    btn.onclick = function () {
    alert("动态事件");
    }


    3、Window对象常用事件
    onload() :对象装载完成后触发
    onscroll() :窗口的滚动条被拖动时触发
    onresize() :窗口的大小改变时触发
    onblur()/onfocus() :窗口失去/获得焦点时触发
    onerror() :遇到执行错误时触发
    onunload() :对象被卸载后触发
    4、Document对象
    每个载入浏览器的HTML文档都会成为Document对象
    onload() 对象装载完成后触发
    onkeydown 按下一个键
    onkeyup 松开一个键
    onkeypress 按下然后松开一个键
    onunload() 对象被卸载后触发
    onmousedown 按下鼠标键
    onmousemove 移动鼠标
    onmouseout 鼠标离开当前页面
    onmouseover 鼠标移动到当前页面
    onmouseup 松开鼠标键
    onclick 单击鼠标键
    ondblclick 双击鼠标键
    5、表单元素-表单
    属性 action 表单数据将被提交的页面
    method 提交表单的方法,get/post
    方法 submit() 提交表单
    事件 onsubmit 提交表单时触发,返回false时取消提交

    6、表单元素-文本框

    属性 value 文本框的内容
    readonly 只读,只允许后台修改
    方法 focus() 使文本框获得焦点
    select() 选中文本框内容
    事件 onblur 文本框失去焦点时触发
    onfocus 文本框获得焦点时触发
    onchange 文本框内容改变且失去焦点时触发

    7、表单元素-按钮
    属性 value 按钮显示的内容
    disabled 表明按钮是否可用
    事件 onclick 单击按钮时触发
    ondblclick 双击按钮时触发

    8、表单元素-单选框
    属性 value 单选框的value值
    checked 单选框的选中状态
    事件 onblur 单选框失去焦点时触发
    onfocus 单选框获得焦点时触发
    onclick 单击单选框时触发


    9、表单元素-复选框
    属性 value 复选框的value值
    checked 复选框的选中状态
    事件 onblur 复选框失去焦点时触发
    onfocus 复选框获得焦点时触发
    onclick 单击复选框时触发


    10、表单元素-下拉列表
    属性 value 被选中项的value值
    length 下拉选项的个数
    selectedIndex 选中项的索引,可以修改选中项
    options 所有下拉选项的数组
    事件 onblur 下拉列表失去焦点时触发
    onfocus 下拉列表获得焦点时触发
    onchange 选项发生改变时触发


    11、Event事件对象
    srcElement 产生该事件的元素
    type 事件类型,字符串
    clientX/clientY 相对于用户区的坐标
    screenX/screenY 相对于屏幕的坐标
    button 鼠标按键类型
    keyCode 按键代码
    altKey(ctrl、shift) Alt(Ctrl、Shift)键按下为true
    cancleBubble 表明该事件是否向上传递
    returnValue 事件返回值
    fromElement 被移动的元素
    toElement 正在被移动的元素


    12、阻止事件冒泡

    第七章 JavaScript特效制作
    一、样式操作 style
    style.backgroundColor
    style["background-color"]
    style["backgroundColor"]

    二、属性操作 attributes
    id
    attributes["data-type"]

     三、QQ分组实例

     实现代码:

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8">
            <title></title>
            <style type="text/css">
                .container {
                     180px;
                    border: 1px solid #ccc;
                }
    
                .container .groups {
                    background-color: #008B8B;
                    text-align: center;
                    color: white;
                    padding: 6px;
                    border: 3px solid aliceblue;
                }
    
                .container .content {
                    padding: 10px;
                    line-height: 26px;
                }
            </style>
            <script type="text/javascript">
                window.onload = function() {
                    var groups = document.getElementsByClassName("groups");
                    for (var i = 0; i < groups.length; i++) {
                        groups[i].ondblclick = function() {
                            var sibling = this.nextElementSibling;
                            if (sibling.style.display == "none") {
                                sibling.style.display = "block";
                            } else {
                                sibling.style.display = "none"
                            }
                        }
                    }
                }
            </script>
        </head>
        <body>
            <div class="container">
                <div class="groups">同学</div>
                <div class="content">
                    张三<br />
                    李四<br />
                    王五
                </div>
                <div class="groups">朋友</div>
                <div class="content">
                    齐天大圣<br />
                    灭霸
                </div>
                <div class="groups">师长</div>
                <div class="content">
                    高数老师<br />
                    谢老师
                </div>
            </div>
        </body>
    </html>

    4、 Tab选项卡

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8">
            <title></title>
            <style type="text/css">
                ul {
                    padding: 0px;
                    margin: 0px;
                }
    
                ul li {
                    display: table-cell;
                    padding: 10px;
                    border: 1px solid #666;
                     78px;
                    background-color: darkcyan;
                    text-align: center;
                    color: white;
                    cursor: hand !important;
                }
    
                ol {
                    padding-left: 16px;
                    margin: 10px;
                }
    
                div {
                    border: 1px solid #ccc;
                     298px;
                }
    
                .active {
                    background-color: mediumaquamarine;
                }
            </style>
            <script type="text/javascript">
                window.onload = function() {
                    var lis = document.getElementsByTagName("ul")[0].children;
                    var ols = document.getElementsByTagName("ol");
                    for (var i = 0; i < lis.length; i++) {
                        lis[i].onclick = function() {
                            var li = document.getElementsByClassName("active");
                            for (var j = 0; j < li.length; j++) {
                                li[j].className = "";
                            }
                            // for (var j = 0; j < tools.length; j++) {
                            ////     if (tools[j] != this) {
                            //         tools[j].className = "";
                            //     }
                            // }
                            this.className = "active";
    
                            var id = this.attributes["data-bind-id"].value;
                            for (var j = 0; j < ols.length; j++) {
                                if (ols[j].id === id) {
                                    ols[j].style.display = "block";
                                } else {
                                    ols[j].style.display = "none";
                                }
                            }
                        }
                    }
                }
            </script>
        </head>
        <body>
            <ul>
                <li data-bind-id="news" class="active">新闻</li>
                <li data-bind-id="tech">科技</li>
                <li data-bind-id="econ">经济</li>
            </ul>
            <div>
                <ol id="news">
                    <li><a href="#">天使之泪,百感交集</a></li>
                    <li><a href="#">疫情实时动态</a></li>
                    <li><a href="#">科学是抗疫最有力的武器</a></li>
                </ol>
                <ol id="tech" style="display: none;">
                    <li><a href="#">不用等iOS 14,消息称Apple..</a></li>
                    <li><a href="#">新零售的“达摩克利斯之剑”</a></li>
                    <li><a href="#">科技图鉴|居家隔离的宝可梦</a></li>
                </ol>
                <ol id="econ" style="display: none;">
                    <li><a href="#">契机!黎明前的黑暗!</a></li>
                    <li><a href="#">央妈出手,智能存款危险了!</a></li>
                    <li><a href="#">各地多措并举 恢复经济社会秩序</a></li>
                </ol>
            </div>
        </body>
    </html>
  • 相关阅读:
    运算符
    java--有关前台展示图片流的用法
    TortoiseSVN--Subversion客户端使用详解及问题解决
    SVN 文件的解锁方法
    JDBC中获取数据表的信息
    tomcat配置文件解决乱码问题
    正则表达式常用匹配
    Java:如何选择最为合适的Web开发框架
    键盘enter事件 兼容FF和IE和Opera
    PayPal 支付接口详解
  • 原文地址:https://www.cnblogs.com/JuneDream/p/14026486.html
Copyright © 2011-2022 走看看