JAVAWeb(第二周)

Javascript基础·

js的String对象

创建String对象

   var str="abc";

方法和属性

***属性:  length:字符串的长度

***方法:

(1)于html相关的方法

-bold():字体加粗

-fontcolor():字体颜色

-fontsize():设置字体大小

-link():将字符转换成超链接(  变量名.link("超链接地址")  )

-sub():上标      -sup():下标

(2)于java相似的方法

-concat():连接字符串

**var str1="abc";

var str2="def";

document.write(str1.concat(str2));

-charAt():返回指定位置的字符串

var str3="abcdefg";

document.write(str3.charAt(20));  //字符位置不存在,返回空字符串

-indexOf():返回字符串位置

var str4="poiuyt";

document.write(str4.indexOf(w));//字符不存在,返回-1

-split():切分字符串,成数组

var str5 ="a-b-c-d";

var arr1 =str5.split("-");

document.write("length "arr1.length);

-replace():替换字符串

传递俩个参数:

——第一个参数是原始字符

——需要替换成字符

var str6="abcd";

document.write(str6);

document.write("<br/>");

document.write(str6.replace("a","Q"));

-substr()substring()

var str 7="abcdefghuiop";

document.write(str7.substr(5,5));  //从第五位开始,向后截五个字符

***从第几个字符开始,向后截取几位

document.write("<br/>");

document.write(str7.substring(3,5));     //从第几位开始到第几位结束[3,5)

***从第几位开始,到第几位结束,但是不包括最后哪一位

js的Array对象

创建数组(三种)

-var arr1=[1,2,3];

-var arr2 =new Array(3);//长度是3

-var arr3 =new Array(1,2,3,);数组中的元素是1 2 3

属性:length:查看数组的长度

方法:

-concat():数组的连接

var arr11=[1,2,3];

var arr12=[11,12,123];

document.write(arr11.concat(arr12));

-join():根据指定的符号把数组进行分割

var arr13=new Affay(3);

arr13[0]="a";

arr13[1]="b";

arr13[2]="c";

document.write(arr13);

document.write("<br/>");

document.write(arr.13,join("-"));

-push():向数组末尾添加元素,返回数组的新的长度

**如果添加的是一个数组,这个时候把数组当作一个字符串添加进去

push方法演示

-pop():表示删除最后一个元素,返回删除的那个元素

    

pop方法

-reverse():颠倒数组中的元素顺序


reverse演示

js的date对象

js里如何获取当前时间:

var date =new Date();

document.write(date):  //不为习惯中国计时格式

document.write(date.toLocaletString())://转换为习惯的格式

getFullYear():得到当前年的方法

getMonth():得到当前的月的方法

****返回的是0-11月,如果想要得到准确的值,需要加1

var date 1=date.getMonth()+1;

document.write("month:  "+date1);

-getday():获取当前的星期

星期日返回的是0 星期一到星期六返回的值为1-6

document.write("week:  "+date.getday()):

-getDate:得到当前的天:

document.write((day: )+date.getDate);

-getHours:得到当前的小时:

document.write("hour:  "+date.getHors());

-getMinutes:得到当前的分钟:

document.write("minute:  "+date.getMinutes());

-getSeconds:得到当前的秒:

document.write("seconds:  "+getSeconds());

-getTime():获取毫秒:

js中的math对象

*数学的运算

**里面都是静态方法,使用可以直接使用Math.方法()

-ceil(x):向上舍入

floor(x):向下舍入

found(x):四舍五入

random():得到一个0-1随机数(伪随机数)

document.write(Math.random());

得到一个0-9的随机数:

document.write(Math.floor(Math.random()*10));

js的全局函数

不属于任何一个函数,直接写名称使用

-eval():执行js代码(如果字符串是一个js代码,使用方法直接执行)

var str="alert'1234';";

eval(str);

-encodeURI():对字符进行编码

var str="测试中文aaa1234";

var encode1=encodeURI(str1);

document.write(encode1);

-decodeURI():对字符进行解码

var decode1=decodeURI(ebcode1);

-isNaN():判断当前字符串是否是数字

***如果是数字,返回false

***如果不是数字,返回true

-parseInt():类型转换(字符串转换成数字类型)

js的函数的重载

面试问题回答:js里面是否存在重载?

(1)js里面不存在重载

(2)但是可以使用其他方法来模拟实现重载效果 (通过arguments数组来实现)

js的bom对象

有哪些对象:

navigator:获取客户机的信息(浏览器的信息)

docunment.write(navigator.appName);

csreen:获取屏幕的信息

docunment.write(screen,width);

docunment.write(screen.height);

location:请求url地址

-href:***获取请求的url地址

***设置url地址

-页面上安置一个按钮,按钮上绑定一个事件,当我点击这个按钮,页面可以跳转到另外一个页面

<input type="button" value="tiaozhuan" onclick="href1();"/>

  onclick="js的方法;"   //鼠标点击事件

location.href="跳转的路径;";

history:请求url的历史记录

-到访问的上一个页面

history.back();

history.go(-1);

-到访问的下一个页面

history.forward();

history.go(1);

window:


window部分方法

window.setIbterval("alert('123');",3000);//表示每三秒,执行一次alert方法

window.setTimeout("alert('abc');",4000);   //表示在毫秒数结束后执行,但只会执行一次

-clearInterval();清除setInterval

-clearTimeout();清除setTimeout


方法演示

js的dom文档


分析如何使用dom解析html


补充上图



DHTML:是很多技术的简称

**html:封装数据

**css:使用属性值和属性设置样式

**dom:操作html文档(标记型文档)

**javascript:专门指的是js的语法语句(ECMAScript)

document对象:

*表示整个文档

**常用方法

  ***write()方法:

(1)向页面输出变量 (值)

(2)向页面输出html代码

document.write("abc");

document.write("<hr/>");

getElementById();

-通过id得到元素(标签)

-//使用getElementById得到input标签

var input1=document.getElementById("nameid");

//得到input里面的value值

alert(input1.value);


getElementsByName();

-通过标签的name的属性值得到input标签

-返回的是一个集合(数组)

-//使用getElementsByName得到input标签

代码演示

-getElementBytypeTagName("标签名称");

-通过标签名称得到元素


代码演示

***注意的地方:

****只有一个标签,这个标签只能使用name获取到,这个使用,使用getElementByName返回的是一个数组,但是现在只有一个元素,这个时候不需要遍历,而是可以直接通过数组的下标获取到值

//通过name得到input标签

var inputs2=document。getElementByName("name11")[0];

alert(inputs2.value);

案例:window弹窗案例

-实现过程

1,创建一个页面

**有俩个输入项和一个按钮

**按钮上面有一个事件:弹出一个新窗口

<body>

编号:<input type="text" id="numid">

姓名:<input type="text" id="nameid">

<input type="button" value="选择" onclick="open1()">

<script type="text/javascript">

function open1() {

window.open("user.html","","width=250px,height=300px")

}

</body>

2,创建弹出页面

**表格

**每一个有一个按钮和编号和名字

**按钮上有一个事件:把当前的编号和姓名,赋值到第一页面相应的位置

<body>

<table>

    <tr>

        <td><input type="button" value="选择" oncancel="s1('100','东方不败');"/></td>

        <td>100</td>

        <td>东方不败</td>

    </tr>

    <tr>

        <td><input type="button" value="选择" oncancel="s1('101','岳不群');"/></td>

        <td>101</td>

        <td>岳不群</td>

    </tr>

    <tr>

        <td><input type="button" value="选择" oncancel="s1('102','林平之');"/></td>

        <td>102</td>

        <td>林平之</td>

    </tr>

</table>

<script type="text/javascript">

    //实现s1的方法

    function s1(num1,name1) {

        //需要把num1和name1赋值到window页面

        //跨页面操作 opener:得到创建这个窗口的窗口 得到window页面

        var pwin=window.opener;

        pwin.document.getElementById("numid").value=num1;

        pwin.document.getElementById("nameid").value=name1;

        //关闭窗口

        window.close();

    }

</script>

</body>

案例一:在末尾添加节点

实现思路

第一步:获取ul标签

第二步:创建li标签

document.createElement("标签方法")方法

第三步:创建文本

document.createTexNode("文本内容");

第四步:把文本添加到li下面

使用appendChild方法

第五步:把里添加到ul末尾

使用appendChild方法

代码演示

元素对象(element对象)

**要操作element对象,首先必须要获取到element,

-使用document里面相应的方法获取

**方法

***获取属性里面的值

getAttribute("属性名称")

-var input1=document.getElementById("inputid");

//alert(input1.value);

alert(input1.getAttribute("value"));

设置属性的值:setAttribute("属性名","属性值");

input.setAttribute("class","haha");

删除属性

input.removeAttribute("name");

不能删除value

想要获得标签下面的子标签

使用属性childNodes,但是这个属性兼容性很差

获得标签下面子标签的唯一有效办法,使用getElementByTagName方法

var ul11=document.getElementById("ulid1");

//获取标签下面的子标签

var lis=ul11.getElementByTagName("li");

alert(lis.length);

node对象属性一

*nodeName

*nodeType

*nodeValue


代码演示

*标签节点对应的值

nodeType:  1

nodeName:  大写标签名称  比如  SPAN

nodeValue:   null

*属性节点对应的值

nodeType:   2

nodeName:   属性名称

nodeValue:  属性的值

*文本节点对应的值

nodeType:  3

nodeName:  #text

nodeValue:  文本内容

Node对象的属性二

*父节点

parentNode

*子节点

childNodes:得到所有子节点,但是兼容性差

firstchild:获得第一个子节点

lastchild:获取最后一个子节点

*同辈节点

nextSibling:返回一个给固定节点的下一个兄弟节点。

previousSibling:返回一个给定节点的上一个兄弟节点。

操作dom树

appendChild方法:

--添加子节点到末尾

--特点:类似剪切黏贴的效果

insertBefore(newNode,oldNode)方法

-在某个节点之前插入一个新的节点

-俩个参数

*要插入的节点

*在谁之前插入

-插入一个节点,节点不存在,创建

1,创建标签

2,创建文本

3,把文本添加到标签的下面

代码思路:

1,获取到li13标签

2,创建li

3,创建文本

4,把文本添加到li下面

5,获取到ul

6,把li添加到ul下面

代码演示

removeChild();  :删除节点,通过父节点删除,不能自己删除自己

代码思路:

1、获取到li24标签

2、获取父节点ul标签

3、执行删除(通过父节点删除)

//获取li标签

var li24=document.getElementById("li24");

//获取父节点

//俩种方式  1、通过id获取; 2、通过属性parentNode获取

var ul31=document.getElementById("ulid31");

//删除(通过父节点)

ul31.removeChild(li24);

replaceChild(newNode,oldNode)方法:替换节点

-不能自己替换自己,通过父节点替换

-俩个参数

**第一个参数:新的节点(替换成的节点)

**第二个节点:旧的节点(被替换的节点)

代码思路:

1、获取到li34

2、创建标签li

3、创建文本

4、把文本添加到li下面

5、获取ul标签(父节点)

6、执行替换操作(replaceChild(newNode,oldNode))

//获取li34

Var li34=document.getElementById("li34");

//创建li

varli35=document.createElement("li");

//创建文本

var text35=document.createTextNode("张无忌");

//把文本添加到li的下面

li35.appendChild(text35);

//获取ul

var ul41=document.getElementById("ulid41");

//替换节点

ul41.replaceChild(li35,li34);

clonNode(boolean):复制节点

-//把ul列表复制到另外一个div里面

代码思路:

1、获取到ul

2、执行复制方法 cloneNode方法复制True

3、把复制之后的内容放到div里面qu

**获取到div

**appendChild方法

//获取ul

var ul41=document.getElementById("ulid41");

//复制ul,放到类似剪切板里的东西

var ulcopy=ul41.coloneNode(ture)

//获取dic

var divv=document.getElementById("divv");

//把副本放到div里面去

divv.appendChild(ulcopy);


操作dom总结

innerHTML属性

这个属性不是dom的组成部分,但是大多数浏览器都支持的属性

第一个作用:可以获得文本内容

第二个作用:向标签里面设定一些内容(可以是html代码)

案例:动态显示时间

得到当前时间

var date = new Date();

var d1=datedate.toLocaleString();

*需要让页面每一秒获取时间

setInterval方法

*显示到页面上

    每一秒向div里面写一次时间

    * 使用innerHTML属性


<div id="times">

<script type="text/javascript">

    function getD1() {

var date =new Date();

        var d1 = date.toLocaleString();

        var div1 = document.getElementById("times");

        div1.innerHTML = d1;

    }

setInterval("getD1();",1000);

</body>

案例:全选练习

*创建一个页面

**复选框和按钮

—四个复选框表示爱好

—还有一个复选框操作  全选和全不选

**三个按钮,分别由事件

—全选

—全不选

—反选

先构建选项按钮:

<input type="checkbox" id="boxid" onclick="selAllNo();">全选/全不选

<br/>

<input type="checkbox" name="love">篮球

<input type="checkbox" name="love">排球

<input type="checkbox" name="love">足球

<input type="checkbox" name="love">橄榄球

<br/>

<input type="button" value="全选" oncancel="selAll();">

<input type="button" value="全不选" oncancel="selNo();">

<input type="button" value="反选" oncancel="selOther();">

实现全选操作:

<script type="text/javascript">

    function selAll() {

//获取要操作的复选框

        var loves =document.getElementsByName("love");

        //遍历数组,得到每一个复选框

        for (var i=0;i

var love1=loves[i];//得到每一个复选框

//设置属性是true

            love1.checked =true;

        }

}

</script>

实现反选操作:

function selOther(){

//获取操作的复选框

var loves11=document.getElementsByName("love");

for(var a=0;a<loves11.length;a++){

var love11=loves11[a];

if(love11.checked==tyre){

love11.checked=false;

}else{

love11.check=true;

               }

      }

 }

案例:下拉列表左右选择

*下拉选择框<select>

<option>111</option>

<option>111</option>

</select>

*创建一个页面

**俩个下拉选择框

-设置属性multiple属性

**四个按钮,有事件

*选中添加到右边

步骤

1、获取select里面的option

-getElementByTagName()返回是数组

-遍历数组,得到每一个option

2、判断option是否被选中

-属性 selected,判断是否被选中

**select=true:选中

**select=false:没有选中

3、如果是选中,把选择的添加到右边去

4、得到select2

5、添加选择的部分

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

推荐阅读更多精彩内容

  • 概要 64学时 3.5学分 章节安排 电子商务网站概况 HTML5+CSS3 JavaScript Node 电子...
    阿啊阿吖丁阅读 9,096评论 0 3
  • 第1章 认识JS JavaScript能做什么?1.增强页面动态效果(如:下拉菜单、图片轮播、信息滚动等)2.实现...
    mo默22阅读 1,246评论 0 5
  • 一、JS前言 (1)认识JS 也许你已经了解HTML标记(也称为结构),知道了CSS样式(也称为表示),会使用HT...
    凛0_0阅读 2,752评论 0 8
  • 首先给大家介绍javascript jquery中定义数组与操作的相关知识,具体内容如下所示: 1.认识数组 数组...
    JamHsiao_aaa4阅读 1,897评论 0 2
  • 第五章******************************************************...
    fastwe阅读 671评论 0 0