Javascript 笔记与总结(2-7)对象
html:
<h1>找对象</h1>
<div id="div1">
<p>p1</p>
<p>p2</p>
<p>p3</p>
</div>
<div class="div2"></div>
<input type="text" name="username" value="uname">
js:
① Id
console.log(document.getElementById("div1"));
输出:
<div id="div1">
<p>p1</p>
<p>p2</p>
<p>p3</p>
</div>
类型是 [object HTMLDivElement]
② TagName
console.log(document.getElementsByTagName("p"));
console.log(document.getElementsByTagName("p").length);
console.log(document.getElementsByTagName("h1"));
输出:
[p, p, p, item: function, namedItem: function]
0: p
1: p
2: p
length: 3
__proto__: HTMLCollection
类型是 [object HTMLCollection] 对象集合
3
[h1, item: function, namedItem: function]
0: h1
length: 1
__proto__: HTMLCollection
操作集合中的某个元素:
var ps = document.getElementsByTagName("p");
ps[1].style.background = 'blue';
③ 表单元素 Name
console.log(document.getElementsByName("username"));
输出:
[input, item: function]
0: input
length: 1
__proto__: NodeList
类型 [object NodeList] 节点列表
读取其中一个表单元素的 value
var username = document.getElementsByName("username");
console.log(username[0].value);
输出:
uname
操作其中一个表单元素的 value
username[0].value = 'dee';
或者直接
document.getElementsByName("username")[0].value = "dee";
④ ClassName (ie6/ie7/ie8 的 document 对象是没有 getElementByClassName 这个属性的)
console.log(document.getElementsByClassName("div2"));
输出:
[div.div2, item: function, namedItem: function]
0: div.div2
length: 1
__proto__: HTMLCollection
类型 [object HTMLCollection]
⑤ 找子对象 / 父对象 children / parent(可在 W3C 手册中查找)
console.log(document.getElementById("div1").childNodes);
输出:
[text, p, text, p, text, p, text, item: function]
0: text
1: p
2: text
3: p
4: text
5: p
6: text
length: 7
__proto__: NodeList
在 DOM 中,一个注释、一个换行、一个空格都看成是一个节点
另外,除了 childNodes 外,children 也可以用来表示子节点(并不是 W3C 的规范,但是各个浏览器都支持),使用 children 属性时,例如上例遍历 #div1 的子节点时,会自动过滤例如换行、空白等 空白节点
console.log(document.getElementById("div1").children);
输出:
[p, p, p, item: function, namedItem: function]
0: p
1: p
2: p
length: 3
__proto__: HTMLCollection
父节点
console.log(document.getElementsByTagName("p")[0].parentNode);
输出:
<div id="div1">
<p>p1</p>
<p style="background: blue;">p2</p>
<p>p3</p>
</div>
也可以操作父节点的属性
document.getElementsByTagName("p")[0].parentNode.style.border = '1px solid #eee')
Javascript 笔记与总结(2-7)对象的更多相关文章
- [Effective JavaScript 笔记]第4章:对象和原型--个人总结
前言 对象是js中的基本数据结构.对象在js语言编码中也随处可见,比如经常会用到的函数,也是一个Function构造函数,Function.prototype原型对象.每当声明一个函数时,都会继承Fu ...
- [Effective JavaScript 笔记] 第4条:原始类型优于封闭对象
js有5种原始值类型:布尔值.数字.字符串.null和undefined. 用typeof检测一下: typeof true; //"boolean" typeof 2; //&q ...
- [Effective JavaScript 笔记]第28条:不要信赖函数对象的toString方法
js函数有一个非凡的特性,即将其源代码重现为字符串的能力. (function(x){ return x+1 }).toString();//"function (x){ return x+ ...
- Javascript 笔记与总结(2-4)Javascript 内置对象
① String 字符串对象 fromCharCode() 静态方法, 用作为参数而传递的字符代码创建一个新的字符串. length 字符串的长度. charAt() 抽取字符串中指定位置的字符. c ...
- [Effective JavaScript 笔记] 第5条:避免对混合类型使用==运算符
“1.0e0”=={valueOf:function(){return true;}} 是值是多少? 这两个完全不同的值使用==运算符是相等的.为什么呢?请看<[Effective JavaSc ...
- [Effective JavaScript 笔记]第3章:使用函数--个人总结
前言 这一章把平时会用到,但不会深究的知识点,分开细化地讲解了.里面很多内容在高3等基础内容里,也有很多讲到.但由于本身书籍的篇幅较大,很容易忽视对应的小知识点.这章里的许多小提示都很有帮助,特别是在 ...
- 从头开始学JavaScript 笔记(一)——基础中的基础
原文:从头开始学JavaScript 笔记(一)--基础中的基础 概要:javascript的组成. 各个组成部分的作用 . 一.javascript的组成 javascript ECMASc ...
- 【原】javascript笔记之Array方法forEach&map&filter&some&every&reduce&reduceRight
做前端有多年了,看过不少技术文章,学了新的技术,但更新迭代快的大前端,庞大的知识库,很多学过就忘记了,特别在项目紧急的条件下,哪怕心中隐隐约约有学过一个方法,但会下意识的使用旧的方法去解决,多年前ES ...
- jQuery:自学笔记(4)——事件与事件对象
jQuery:自学笔记(4)——事件与事件对象 jQuery中的事件 什么是事件 所谓事件,就是被对象识别的操作,即操作对象队环境变化的感知和反应,例如单击按钮或者敲击键盘上的按键. 所谓事件流,是指 ...
- JavaScript笔记(第一章,第二章)
JavaScript笔记(第一章,第二章) 第一章: <meta http-equiv="Content-Type" content="text/html; cha ...
随机推荐
- Android之网络编程
本文主要包括三方面内容 Httpurlconnection中doGet与doPost方法实现提交数据到服务器 HttpClient中doGet与doPost方法实现提交数据到服务器 android-a ...
- unix PS命令和JPS命令的区别
1.JPS介绍 用来查看基于HotSpot的JVM里面中,所有具有访问权限的Java进程的具体状态, 包括进程ID,进程启动的路径及启动参数等等,与unix上的ps类似,只不过jps是用来显示java ...
- Android打Path的方法
转自:http://blog.csdn.net/xiangzi10/article/details/42710099 作为程序员,了解diff&patch命 令是非常必要的.比如说我们发现某个 ...
- MyISAM InnoDB 区别
MyISAM 和 InnoDB 讲解 InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定.基本的差别为:MyISAM类型不支持事务处理等高级处 ...
- Oracle 11g 卸载
1.关闭oracle所有的服务.可以在windows的服务管理器中关闭: 2.打开注册表:regedit 打开路径: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlS ...
- 2-SAT问题及其算法
原文地址:http://www.cppblog.com/MatoNo1/archive/2011/07/13/150766.aspx [2-SAT问题]现有一个由N个布尔值组成的序列A,给出一些限制关 ...
- sina sae 部署 java ssh 项目
转自:http://jacobcookie.iteye.com/blog/1876798 1. 在sae上使用struts,需要添加的Listener,在com.company.listener中添加 ...
- /dev/tty /dev/ttyS0 /dev/tty0区别 (转载)
1.串行端口终端(/dev/ttySn) 串行端口终端(Serial Port Terminal)是使用计算机串行端口连接的终端设备. 计算机把每个串行端口都看作是一个字符设备.有段时间 ...
- php升级5.3到5.4,5.5,5.6
Laravel要求php大于5.5.9,升级php5.3.3到5.6.14(最新版为 5.6.15 ) Add EPEL and Remi repositories onto your system: ...
- Eclipse启动Tomcat时45秒超时的解决方法
Eclipse启动Tomcat时,默认配置的启动超时时长为45秒.假若项目需要加载的东西比较多,启动时间会比较久,如果启动超过45秒将会报错.有两种解决途径,方法只有一个,就是修改启动时间. 1. 修 ...