JavaScript笔记:
-----------------------------------------------------------
JavaScript和Java一样存在两种数据类型
原始值 (存储在栈Stack中简单数据)
引用值 (存储在堆heap中对象)
5种原始数据类型
Undefined、Null、Boolean、Number 和 String
JavaScript中字符串是原始数据类型
通过typeof运算符,查看变量类型 typeof(变量名称)
所有引用类型都是object
通过instanceof 运算符解决typeof对象类型判断问题
区分 undefined 和 null
变量定义了未初始化/ 访问对象不存在属性 --- undefined
访问的对象不存在 --- null
-----------------------------------------------------------
BOM是浏览器对象模型,用来获取或设置浏览器的属性、行为,例如:新建窗口、获取屏幕分辨率、浏览器版本号等。
DOM是文档对象模型,用来获取或设置文档中标签的属性,例如获取或者设置input表单的value值。
BOM的内容不多,主要还是DOM。
由于DOM的操作对象是文档(Document),所以dom和浏览器没有直接关系。
-----------------------------------------------------------
** 获取毫秒数
getTime()
返回的是1970 1 1 至今的毫秒数
** 应用场景:
*** 使用毫秒数处理缓存的效果(不有缓存)
http:www.baidu.com?毫秒数
-----------------------------------------------------------
getElementById() 返回对拥有指定 id 的第一个对象的引用。
getElementsByName() 返回带有指定名称的对象集合。
getElementsByTagName() 返回带有指定标签名的对象集合。
-----------------------------------------------------------
*** 想要获取标签下面的子标签
** 使用属性 childNodes,但是这个属性兼容性很差
** 获得标签下面子标签的唯一有效办法,使用getElementsByTagName方法
<!--获取 ul 下面的 li 子标签集合-->
var lis = ul.getElementsByTagName("li");
alert(lis.length);
-----------------------------------------------------------
* 使用dom解析html时候,需要html里面的标签,属性和文本都封装成对象
* 标签节点对应的值
nodeType: 1
nodeName: 大写标签名称 比如SPAN
nodeValue: null
* 属性节点对应的值
nodeType: 2
nodeName: 属性名称
nodeValue: 属性的值
* 文本节点对应的值
nodeType: 3
nodeName: #text
nodeValue: 文本内容
-----------------------------------------------------------
5、操作dom树
** appendChild方法
- 添加子节点到末尾
- 特点:类似于剪切黏贴的效果
** insertBefore(newNode,oldNode)方法
- 在某个节点之前插入一个新的节点
(也可以像appendChild方法一样使用,同样也是剪切效果)
* removeChild
- 通过父节点删除
* replaceChild(新节点,旧节点)
- 通过父节点替换
-----------------------------------------------------------
** 使用复选框上面一个属性判断是否选中
- checked属性
- checked=true:选中
- checked=false:不选中
-----------------------------------------------------------
** 写js的方法的命名
add1()、add_1()
** 不要写单一的单词 add()
** 不要把下划线放在开始位置 _add()
-----------------------------------------------------------
添加节步骤:
<!--创建新 li-->
var li = document.createElement("li");
<!--把文本加入 li 中-->
li.appendChild(document.createTextNode("444"));
<!--根据 id 获取 ul 标签对象-->
var ul = document.getElementById("ulid");
<!--把新li加入 ul 中-->
ul.appendChild(li);
-----------------------------------------------------------
更改元素中的 value 方法:
(1)、元素.innerHTML
<div id="div1Id"></div>
<!--向 div1 的文本中写入指定内容 适用:div,span-->
var div1 = document.getElementById("div1Id");
div1.innerHTML = "<h3>我是 div1 中的文本内容<h3>";
(2)、元素.value
<input type="text" id="input1Id" name="我是aaa" value="aaa" /><br/>
var input1 = document.getElementById("input1Id");
input1.value = "aab";<!--value,type,id,name...都可以(class除外)-->
(3)、文本节点.nodeValue
<span id="aId">aaa</span><br/>
<!--获取元素对象 span-->
var span1 = document.getElementById("aId");
<!--通过元素对象获取第一个文本节点对象 aaa (也就只有一个对象)-->
var text1 = span1.firstChild;
document.write("text文本值:" + text1.nodeValue + "<hr/>");<!--aaa-->
-----------------------------------------------------------
09-16
09-16
09-16
09-16
09-16