window对象的属性
document.write()
会覆盖原有的全部内容1
2
3
4
5
6
7
8
9<body>
你是谁<input type="button" id="btn" value="click" />
</body>
</html>
<script>
document.getElementById("btn").onclick = function () {
}
</script>document.getElementById()
,getElementsByName()
,`getElementsByTagName
,1
2
3
4
5
6
7
8
9
10
11<body>
<input type="text" name="txt" />
<input type="text" name="txt" />
<input type="text" name="txt"/>
</body>
<script>
var inputs = document.getElementsByName("txt");
for (var i = 0; i < inputs.length; i++) {
inputs[i].value = "luox78";
}
</script>注意循环中使用
this
,javascript执行上下文1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25<input type="button" name="btn" value="???????????" />
<input type="button" name="btn" value="???????????" />
<input type="button" name="btn" value="???????????" />
<input type="button" name="btn" value="???????????" />
<input type="button" name="btn" value="???????????" />
<input type="button" name="btn" value="???????????" />
<input type="button" name="btn" value="???????????" />
<script>
//点击一个按钮,被点击的按钮显示“呜呜”,其他按钮显示“哈哈”
var inputs = document.getElementsByName('btn');
for (var i = 0; i < inputs.length; i++) {
if (inputs[i].type == 'button') {
inputs[i].onclick = function() {
for (var j = 0; j < inputs.length; j++) {
if (inputs[j].type == 'button') {
inputs[j].value = "哈哈";
}
}
this.value = "呜呜";
//inputs[i].value = "呜呜"; 这样写不能达到预期的效果
};
}
}
</script>
事件冒泡
演示
1 | <body> |
将div3中console.log(this.id)
改成console.log(window.event.srcElement.id)
,效果一致,但window.event.srcElement.id
为事件源
如何取消事件冒泡呢?使用window.event.cancelBubble=true
,在div3 onclick
中加入window.event.cancelBubble=true
,console中只输出了div3
动态添加元素
演示点击按钮添加td
1 | <body> |
document.XXX
方法:
createElement('element');
创建一个节点
appendChild(node);
追加一个节点
removeChild(node);
移除一个节点
replaceChild(new,old);
替换一个节点
insertBefore(new,参照);
把节点加到前面(插到某个节点前面)
属性:
firstChild
lastChild
动态设置style
document.getElementById("XXX").style
或document.getElementById("XXX")
下