Java EE学习日记_JavaScript下


layout: post
title: Java EE学习日记_JavaScript
subtitle: JavaScript
date: 2018-01-20
author: ZL
header-img: img/20180120.jpg
catalog: true
tags:
- JavaScript
- JavaEE


关于thead和tbody

  • 这个是放在table里面的,把表格的标题行和内容行分开
<table border="1" width="500" height="50" align="center" id="tbl">
    <thead>
        <tr>
            <th>编号</th>
            <th>姓名</th>
            <th>年龄</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>1</td>
            <td>张三</td>
            <td>22</td>
        </tr>
        <tr>
            <td>2</td>
            <td>李四</td>
            <td>25</td>
        </tr>
        <tr>
            <td>3</td>
            <td>王五</td>
            <td>27</td>
        </tr>
        <tr>
            <td>4</td>
            <td>赵六</td>
            <td>29</td>
        </tr>
        <tr>
            <td>5</td>
            <td>田七</td>
            <td>30</td>
        </tr>
        <tr>
            <td align="center">6</td>
            <td>汾酒</td>
            <td>20</td>
        </tr>
    </tbody>
</table>

其中thead里面用tr和th

tbody里面用tr和td

tr和td的差别不大,一般tr用在标题的单元格里面,字体一般会加粗,td用在表格内容的单元格里面

  • 用JavaScript获取table里面的内容

    拿到表格

    var tbid = window.document.getElementById("tbl");

    拿到第i个tbody

    tbid.tBodies[0]

    拿到第i个tbody的第j行

    tbid.tBodies[0].rows[i]

    拿到第i个tbody的行数

    tbid.tBodies[i].rows.length;

    拿到table里面tbody的数量

    tbid.tBodies.length

    设置tbody行的参数

    tbid.tBodies[0].rows[i].style.xxxxx = "xxxx";
    比如:
    tbid.tBodies[0].rows[i].style.backgroundColor = "pink";

事件

之前学了onClick、onSubmit、onblur等
现在介绍2个onmouseoveronMouseout
指的是鼠标滑动上去和鼠标离开

js事件

onfocus/onblur:聚焦离焦事件,用于表单校验的时候比较合适。
onclick/ondblclick:鼠标单击和双击事件
onkeydown/onkeypress:搜索引擎使用较多
onload:页面加载事件,所有的其它操作(匿名方式)都可以放到这个绑定的函数里面去。如果是有名称,那么在html页面中只能写一个。
onmouseover/onmouseout/onmousemove:购物网站商品详情页。
onsubmit:表单提交事件 ,有返回值,控制表单是否提交。
onchange:当用户改变内容的时候使用这个事件(二级联动)

getElementsByName("xxxx");

如果设置了name = "xxxx"属性,
通过这name得到该元素
返回值是一个数组,所有name叫xxxx的都会得到

checkBox有一个属性是checked,可以用来判断是否选中,也可以直接设置它。

JavaScript的DOM操作

image
Document:整个html文件都成为一个document文档
Element:所有的标签都是Element元素
Attribute:标签里面的属性
Text:标签中间夹着的内容为text文本
Node:document、element、attribute、text统称为节点node.

Document对象

每个载入浏览器的 HTML 文档都会成为 Document 对象。


document对象的方法

后面两个方法获取之后需要遍历!

以下两个方法很重要,但是在手册中查不到!
创建文本节点:document.createTextNode()
创建元素节点:document.createElement()

Element对象

我们所认知的html页面中所有的标签都是element元素

element.appendChild()向元素添加新的子节点,作为最后一个子节点。
element.firstChild返回元素的首个子节点。
element.getAttribute()返回元素节点的指定属性值。
element.innerHTML设置或返回元素的内容。
element.insertBefore()在指定的已有的子节点之前插入新节点。
element.lastChild返回元素的最后一个子元素。
element.setAttribute()把指定属性设置或更改为指定值。
element.removeChild()从元素中移除子节点。
element.replaceChild()替换元素中的子节点。

Attribute对象

我们所认知的html页面中所有标签里面的属性都是attribute


attribute方法

例子:
在页面中使用列表显示一些城市

<ul>
    <li>北京</li>
    <li>上海</li>
    <li>广州</li>
</ul>

我们希望点击一个按钮实现动态添加城市。

分析:
事件(onclick)
获取ul元素节点
创建一个城市的文本节点
创建一个li元素节点
将文本节点添加到li元素节点中去。
使用element里面的方法appendChild()来添加子节点
代码:

<html>
<head>
    <title>Title</title>
    <meta charset="utf-8">
    <script>
        function addCity() {
            var cityEle = window.document.getElementById("city");
            var node = window.document.createTextNode("shanghai");
            var element = window.document.createElement("li");
            element.appendChild(node);
            cityEle.appendChild(element);
        }
    </script>
</head>
<body>
    <ul id="city">
        <li>北京</li>
        <li>北京</li>
        <li>北京</li>
    </ul>
    <input type="button" onclick="addCity()" value="添加">
</body>
</html>

创建数组的方式

new Array();
new Array(size);
new Array(element0,element1,element2......)

省市联动的例子

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title>省市联动2</title>
    <meta charset="utf-8">
    <script>
        //1.创建一个二维数组用于存储省份和城市
        var cities = new Array(3);
        cities[0] = new Array("武汉市","黄冈市","襄阳市","荆州市");
        cities[1] = new Array("长沙市","郴州市","株洲市","岳阳市");
        cities[2] = new Array("石家庄市","邯郸市","廊坊市","保定市");
        cities[3] = new Array("郑州市","洛阳市","开封市","安阳市");

        function chooseCity(value) {
            var cityEle = window.document.getElementById("city");
            cityEle.options.length=0;
            switch (value-1){
                case 0:
                    for (var i=0;i<cities[0].length;i++){
                        var optionElement = window.document.createElement("option");
                        var textNode = window.document.createTextNode(cities[0][i]);
                        optionElement.appendChild(textNode);
                        cityEle.appendChild(optionElement);
                    }
                    break;
                case 1:
                    for (var i=0;i<cities[1].length;i++){
                        var optionElement = window.document.createElement("option");
                        var textNode = window.document.createTextNode(cities[1][i]);
                        optionElement.appendChild(textNode);
                        cityEle.appendChild(optionElement);
                    }
                    break;
                case 2:
                    for (var i=0;i<cities[2].length;i++){
                        var optionElement = window.document.createElement("option");
                        var textNode = window.document.createTextNode(cities[2][i]);
                        optionElement.appendChild(textNode);
                        cityEle.appendChild(optionElement);
                    }
                    break;
                case 3:
                    for (var i=0;i<cities[3].length;i++){
                        var optionElement = window.document.createElement("option");
                        var textNode = window.document.createTextNode(cities[3][i]);
                        optionElement.appendChild(textNode);
                        cityEle.appendChild(optionElement);
                    }
                    break;
            }
        }
    </script>
</head>
<body>
    <select onclick="chooseCity(this.value)">
        <option value=0>just choose</option>
        <option value=1>1</option>
        <option value=2>2</option>
        <option value=3>3</option>
        <option value=4>4</option>
    </select>

    <select id="city">

    </select>
</body>
</html>

JavaScript内置对象

js内置对象

Array对象

数组的创建

数组的特点:
长度可变!数组的长度=最大角标+1
Java的数组长度不可变

Boolean对象

Boolean对象创建

如果value 不写,那么默认创建的结果为false

Date对象

getTime()
返回 1970 年 1 月 1 日至今的毫秒数。
解决浏览器缓存问题

Math和Number对象

与java里面的基本一致。

String对象

match()找到一个或多个正则表达式的匹配。
substr()从起始索引号提取字符串中指定数目的字符。
substring()提取字符串中两个指定的索引号之间的字符。

例子

<script>
    var str = "-a-b-c-d-e-f-";
  
  //从第二位开始取四个
    var str1 = str.substr(2,4);//-b-c
    //alert(str1);
    
  //取第二到第四位的
    var str2 = str.substring(2,4);//-b
    alert(str2);
</script>

RegExp对象

正则表达式对象
test检索字符串中指定的值。返回 true 或 false。

全局对象

全局属性和函数可用于所有内建的 JavaScript 对象

js全局函数

例子:

<script>
    var str = "张三";
    //alert(encodeURI(str));//%E5%BC%A0%E4%B8%89
    //alert(encodeURIComponent(str));//%E5%BC%A0%E4%B8%89
    
    //alert(decodeURI(encodeURI(str)));//张三
    //alert(decodeURIComponent(encodeURIComponent(str)));//张三
    
    var str1 = "http://www.itheima.cn";
    //alert(encodeURI(str1));//http://www.itheima.cn
    //alert(encodeURIComponent(str1));//http%3A%2F%2Fwww.itheima.cn
    
    //alert(decodeURI(encodeURI(str1)));//http://www.itheima.cn
    //alert(decodeURIComponent(encodeURIComponent(str1)));//http://www.itheima.cn
    
    var str2 = "alert('abc')";
    //alert(str2);
    eval(str2);
    
</script>
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,099评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,828评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,540评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,848评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,971评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,132评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,193评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,934评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,376评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,687评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,846评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,537评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,175评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,887评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,134评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,674评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,741评论 2 351

推荐阅读更多精彩内容

  •   DOM(文档对象模型)是针对 HTML 和 XML 文档的一个 API(应用程序编程接口)。   DOM 描绘...
    霜天晓阅读 3,625评论 0 7
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,604评论 18 399
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,456评论 1 45
  • vhjhhuisnwbbjjsjbbdbjsjj
    仇志轩阅读 114评论 0 5
  • 谁让过去沦落成沧海 今日你我都不在 爱过错过 我不觉得我有错 到底谁是我的结果 反反复复 在热闹中寻找自我 但终过...
    从从从前阅读 220评论 1 1