One 不想让a实现跳转
<a href='javascript:;'></a>
如果是写#是指空锚点;
Two节点覆盖问题
例:
<div id='box'>
<p id='oo'></p>
</div>
<script>
var oBox = document.getElementById( 'box' );
oP = document.getElementById( 'oo' );
oP.onclick = function(){
oBox.innerHTML +='<span>123456</span>'
};
</script>
→点击一次再点击第二次就没有办法再添加123456;
因为:
var a=10; a+=5; alert( a ); →弹出 15;
a+=5原样是 a=a+5; a先作 a+5 再把得到 a 的值完全给 a ;
上面等同于:
oBox.innerHTML = oBox.innerHTML + '<span>123456</span>'
就<p id='oo'></p> + <span>123456</span>再给oBox
这里的p标签已经跟原来的p不一样了,只是长得不一样而已,最上面 var 获取的是原来的p,现在是p已经没有点击事件了;
解决方法:
<script>
var oBox = document.getElementById( 'box' ),
oP = document.getElementById( 'oo' );
oP.onclick = function fn() {
oBox.innerHTML +='<span>123456</span>'
var oP = document.getElementById( 'oo' );//重新获取新的p标签
oP.onclick = fn; //再给新的p标签添加点击事件;
};
</script>
注意:
如果对style进行添加新的样式,之前要样式不会像js那样失效,css样式每改变一次浏览器整个页面都会全部再绘制一次;
例:
<p>123</p>
<div></div>
<script type="text/javascript">
var oCss = document.getElementsByTagName( 'style' );
oCss[ 0 ].innerHTML = 'div{width: 200px;height: 200px; background: red;}';
</script>