JavaScript的对象

一、BOM对象

BOM----browser object model

1、window对象

所有浏览器都支持window对象。

概念上讲,一个html文档对应一个window对象。

功能上讲:控制浏览器窗口的。

使用上讲:window对象不需要创建对象,直接使用即可。

2、widow对象方法

alert()   显示带有一段信息和一个确认按钮的警告框
confirm() 显示带有一段消息以及确认按钮和取消按钮的对话框。
prompt() 显示可提示用户输入的对话框 open() 打开一个新的浏览器窗口或查找一个已命名的窗口。
close() 关闭浏览器窗口 setInterval() 按照指定的周期(以毫秒计)来调用函数或计算表达式。
clearInterval() 取消由 setInterval()设置的timeout。

3、 方法使用

3.1

1、//alert    //显示带有一段消息和一个确认按钮的警告框
window.alert("hello"); //confirm() // 有一个返回值 确认是true 取消是false
var ret= window.confirm("num");
console.log(ret) // prompt() 有一个返回值 具体的一个值 显示可提示用户输入的对话框
var ret1=window.prompt(100);
// console.log(ret1) //open()函数 打开新的网页
// open("http://www.baidu.com","new","height=200,width=200,resizable=no")

3.2 setInterval ,clearInterval

setInterval()方法会不停地调用函数,直到clearInterval()被调用或窗口被关闭。由setInterval()返回的ID值可用作clearInterval()方法的参数。

语法:<br>     setInterval(code,millisec)
其中,code为要调用的函数或要执行的代码串。millisec周期性执行或调用 code 之间的时间间隔,以毫秒计。
  function foo() {
// console.log("ok")
// }
// setInterval(foo,5000); //隔5分钟再执行foo

示例:

<!--<input type="text" id="timer" onfocus="start()" >   -->触发事件
<!--<button onclick="stop()">end</button>--> 获取光标事件 <script> var ID;
function start() { if(ID==undefined){
bar();
ID=setInterval(bar,1000)
}
} function bar() {
var s_time=new Date(); //获取当前时间
var times=s_time.toLocaleString(); //转换时间格式 var ret=document.getElementById("timer"); //根据属性找对象
ret.value=times; //然后对其value赋值
console.log(ret) }
function stop() {
clearInterval(ID);
ID==undefined;
} </script>

  

二、DOM对象

2.1 什么是HTML DOM

HTML Document Object Model(文档对象模型)

HTML DOM定义了访问和操作HTML文档的标准方法

HTML DOM把HTML 文档呈现现为带有元素、属性和文本的数结构(节点树)

2.2 DOM

画dom树是为了展示文档中各个对象之间的关系,用于对象的导航。

2.3 DOM节点

2.3.1 节点类型

HTML 文档中的每个成分都是一个节点。

DOM 是这样规定的:
    整个文档是一个文档节点 
    每个 HTML 标签是一个元素节点 
    包含在 HTML 元素中的文本是文本节点 
    每一个 HTML 属性是一个属性节点

其中,document与element节点是重点。

2.3.2 节点关系

节点树中的节点彼此拥有层级关系。
父(parent),子(child)和同胞(sibling)等术语用于描述这些关系。父节点拥有子节点。同级的子节点被称为同胞(兄弟或姐妹)。

在节点树中,顶端节点被称为根(root)

每个节点都有父节点、除了根(它没有父节点)

一个节点可拥有任意数量的子

同胞是拥有相同父节点的节点

下面的图片展示了节点树的一部分,以及节点之间的关系:

访问 HTML 元素(节点),访问 HTML 元素等同于访问节点,我们能够以不同的方式来访问 HTML 元素。

2.3.3 节点查找

直接查找节点 (全局查找)

document.getElementById(“idname”)
document.getElementsByTagName(“tagname”)
document.getElementsByName(“name”)
document.getElementsByClassName(“name”)
全局查找

2.3.4 导航节点属性

'''

parentElement           // 父节点标签元素

children                // 所有子标签

firstElementChild       // 第一个子标签元素

lastElementChild        // 最后一个子标签元素

nextElementtSibling     // 下一个兄弟标签元素

previousElementSibling  // 上一个兄弟标签元素

'''

2.4 节点操作  

2.4.1 创建节点:

 createElement(标签名):创建一个指定名称的元素。
例如:// var tag=document.activeElement("input");
// tag.setAttribute("type","text");

2.4.2 添加节点:

追加一个子节点(作为最后的子节点)父节点添加子节点才能调用append
somenode.appendChild(newnode) 把增加的节点放到某个节点的前边
somenode.insertBefore(newnode,某个节点);

2.4.3  替换节点:

somenode.replaceChild(newnode, 某个节点);
<body>

<h1>111</h1>
<p>111</p>
<div class="img"></div>
<button onclick="foo()">add</button>
<button onclick="bar()">del</button> <script> function bar() {
var con=document.getElementsByClassName("img")[0];
ele_h1=con.getElementsByTagName("h1")[0];
con.removeChild(ele_h1);
} function foo() {
//创建标签对象
var ele=document.createElement("img"); //创建一个节点
//为标签赋值属性
// ele.setAttribute("src","top.jpg"); //原生态
ele.src="top.jpg"; //DHTML 动态 推荐
console.log(ele);
//父标签添加子标签
var con=document.getElementsByClassName("img")[0]; //
con.appendChild(ele);
} </script>
</body>

2.5 节点属性操作

1、  获取文本节点的值:innerText  innerHTML(里面有标签页会给获取出来)

2、  attribute操作

  elementNode.setAttribute(name,value)    

     elementNode.getAttribute(属性名)        <-------------->elementNode.属性名(DHTML)

     elementNode.removeAttribute(“属性名”);

修改标签属性:

3、  value获取当前选中的value值

1.input   
        2.select (selectedIndex)
        3.textarea

4、 
innerHTML给节点添加html代码

该方法不是完w3c的标准,但是主浏览器支持

tag.innerHTML=“<p>要显示内容<p>”;

5、关于class的操作;

elementNode.className

elementNode.classList.add

elementNode.classList.remove

6、改变css样式:

<p id="p2">Hello
world!</p>

document.getElementById("p2").style.color="blue";

.style.fontSize=48px

三、 DOM Event(事件)

3.1 事件类型

onclick        当用户点击某个对象时调用的事件句柄。
ondblclick 当用户双击某个对象时调用的事件句柄。 onfocus 元素获得焦点。 练习:输入框
onblur 元素失去焦点。 应用场景:用于表单验证,用户离开某个输入框时,代表已经输入完了,我们可以对它进行验证.
onchange 域的内容被改变。 应用场景:通常用于表单元素,当元素内容被改变时触发.(三级联动)

3.2  绑定事件方式

方式1:
<div id="div" onclick="foo(this)">点我呀</div> <script>
function foo(self){ // 形参不能是this;
console.log("点你大爷!");
console.log(self);
}
</script> 方式2:
<p id="abc">试一试!</p> <script> var ele=document.getElementById("abc"); ele.onclick=function(){
console.log("ok");
console.log(this); // this直接用
}; </script>

JavaScript的对象/下的更多相关文章

  1. 从零构建JavaScript的对象系统

    一.正统的类与继承 类是对象的定义,而对象是类的实例(Instance).类不可直接使用,要想使用就必须在内存上生成该类的副本,这个副本就是对象. 以Java为例: public class Grou ...

  2. JavaScript RegExp 对象

    JavaScript RegExp 对象 RegExp 对象用于规定在文本中检索的内容. 什么是 RegExp? RegExp 是正则表达式的缩写. 当您检索某个文本时,可以使用一种模式来描述要检索的 ...

  3. JavaScript Math 对象

    JavaScript Math 对象 Math 对象 Math 对象用于执行数学任务. Math 对象并不像 Date 和 String 那样是对象的类,因此没有构造函数 Math(). 语法 var ...

  4. 关于JavaScript中对象的继承实现的学习总结

    一.原型链 JavaScript 中原型链是实现继承的主要方法.其主要的思想是利用原型让一个引用类型继承另一个引用类型的属性和方法.实现原型链有一种基本模式,其代码如下. function Super ...

  5. JavaScript BOM对象介绍

    bom:即broswer object model(浏览器对象模型),由五个对象组成:        Window:对象表示浏览器中打开的窗口 最顶层对象.       Navigator :浏览器对 ...

  6. javascript中对象的深度克隆

    记录一个常见的面试题,javascript中对象的深度克隆,转载自:http://www.2cto.com/kf/201409/332955.html 今天就聊一下一个常见的笔试.面试题,js中对象的 ...

  7. JavaScript日期对象使用总结

    javascript Date日期对象的创建 创建一个日期对象: var objDate=new Date([arguments list]); 我总结了参数形式主要有以下3种: new Date(& ...

  8. JavaScript 本地对象、内置对象、宿主对象

    首先解释下宿主环境:一般宿主环境由外壳程序创建与维护,只要能提供js引擎执行的环境都可称之为外壳程序.如:web浏览器,一些桌面应用系统等.即由web浏览器或是这些桌面应用系统早就的环境即宿主环境. ...

  9. 预载入和JavaScript Image()对象

    预载入和JavaScript Image()对象 很多high-res图像真的可以使 Web 站点更加整洁.但是它们也会使站点的访问速度变慢——图像是文件,文件使用带宽,带宽直接与等待时间相关.是该了 ...

随机推荐

  1. 在虚拟机VMware上安装Linux系统教程

    目录: 一.       CentOS的安装 二.       RedHat的安装 三.       VMwaretools的安装 此处提供CentOS和RedHat两个版本的系统安装流程,至于选哪个 ...

  2. js对象系列【一】深层理解对象与原型

    我们先从盘古开天辟地时捋一捋对象: 从宏观内容来讲,javascript是一个属性的集合,包括值,函数,而整个集合也可以类比为一个对象. js = { a的变量名: a的值, ... 函数b: fun ...

  3. Mycat 分片规则详解--范围取模分片

    实现方式:该算法先进行范围分片,计算出分片组,组内在取模 优点:综合了范围分片和取模分片的优点,分片组内使用取模可以保证组内的数据分布比较均匀,分片组之间采用范围分片可以兼顾范围分片的特点,事先规划好 ...

  4. express+mysqle

    var mysql=require('mysql'); var connection=mysql.createConnection({ host:'',//地址 port:'',//端口号 user: ...

  5. gulp工程化工具

    gulpfile.js var gulp = require('gulp'); var rename = require('gulp-rename') var pump = require('pump ...

  6. 【Flask】微型web框架flask大概介绍

    Flask Flask是一个基于python的,微型web框架.之所以被称为微型是因为其核心非常简单,同时具有很强的扩展能力.它几乎不给使用者做任何技术决定. 安装flask时应该注意其必须的几个支持 ...

  7. 19.C++-(=)赋值操作符、智能指针编写(详解)

    (=)赋值操作符 编译器为每个类默认重载了(=)赋值操作符 默认的(=)赋值操作符仅完成浅拷贝 默认的赋值操作符和默认的拷贝构造函数有相同的存在意义 (=)赋值操作符注意事项 首先要判断两个操作数是否 ...

  8. JAVA多线程实现和应用总结

    1.JAVA多线程实现方式JAVA多线程实现方式主要有三种:继承Thread类.实现Runnable接口.使用ExecutorService.Callable.Future实现有返回结果的多线程.其中 ...

  9. JavaScript(第十二天)【基本包装类型】

    1.基本包装类型概述 2.Boolean类型 3.Number类型 4.String类型 为了便于操作基本类型值,ECMAScript提供了3个特殊的引用类型:Boolean.Number和Strin ...

  10. 记录python接口自动化测试--从excel中读取params参数传入requests请求不生效问题的解决过程(第七目)

    在第六目把主函数写好了,先来运行一下主函数 从截图中可以看到,请求参数打印出来了,和excel中填写的一致 但是每个接口的返回值却都是400,提示参数没有传进去,开始不知道是什么原因(因为excel中 ...