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. ABAP调试

    ABAP 开发系列(02): ABAP Development Workbench 介绍(下)- ABAP 调试器 8. Debugger – ABAP 调试器 开发程序,调试器是必不可少的工具,而A ...

  2. Centos虚拟机克隆模板

    Centos6模板 IPTABLES/SELINUX # iptalbes -F # service iptables save 或 # /etc/init.d/iptables stop # chk ...

  3. 快速理解web语义化

    什么是Web语义化 Web语义化是指使用恰当语义的html标签.class类名等内容,让页面具有良好的结构与含义,从而让人和机器都能快速理解网页内容.语义化的web页面一方面可以让机器在更少的人类干预 ...

  4. bootbox的使用

    /* * className为green的方法 */ function alertMsgG(msg,title,fn){ bootbox.alert({ buttons: { ok: { label: ...

  5. Spring Cloud Contract

    http://www.infoq.com/cn/news/2017/04/spring-cloud-contract 在默认情况下,我们希望用户以JAR文件的形式将生产者存根和契约发布到Maven库. ...

  6. (Matlab)GPU计算所需的配置

    电脑:联想扬天 M4400 系统:win 7 X64 硬件:NVIDIA GeForce GT 740M 独显2G     硬件驱动: 软件: Matlab 2015a   %需要安装 Paralle ...

  7. Java基础笔记(1)----语言基础

    变量 变量:是内存中的一块存储空间,是存储数据的基本单元. 使用:先声明,后赋值,在使用. 声明:数据类型 + 变量名 = 值.(例:int a = 5:) 数据类型 分类:如图: 详解: Strin ...

  8. hibernate框架学习笔记9:多对多关系案例

    员工与角色案例: 一个员工可以是多种角色(总监,经理),一种角色可以是多个员工(保洁) 这里发现无法使用外键表达关系,多对多总是创建第三张表来维护关系 这张表至少两列,都是外键,分别引用两张表的主键 ...

  9. JavaScript(第三十天)【XPath】

    XPath是一种节点查找手段,对比之前使用标准DOM去查找XML中的节点方式,大大降低了查找难度,方便开发者使用.但是,DOM3级以前的标准并没有就XPath做出规范:直到DOM3在首次推荐到标准规范 ...

  10. Django 博客

    blogproject/blogproject/settings.py ## 其它配置代码... # 把英文改为中文 LANGUAGE_CODE = 'zh-hans' # 把国际时区改为中国时区 T ...