a标签中的值
有时候我们想使用a标签时,如果想让鼠标划至上面有小手出现的话,必须要给href属性赋值,一般是要写"#"的。但是这样写有一定的弊端——点击链接时会回到页面顶端,导致效果很不理想。
如果只想使用“鼠标移至上面变成小手的样子”,可以直接使用"cursor:pointer;"属性。
如果既想使用a标签,还想点击不发生任何事,可以给href添"javascript:;"或者""javascript:void(0);""但是更建议使用前者,语义简介,且不会出问题;后者"void(0)"的意思是通过计算void中的表达式,但是不返回任何值,也就是说内部的0可以换成任意数。我们可以使用void操作符指定超级链接,如javascript:void(document.form.submit())。表达式会被计算但是不会在当前文档处装入任何内容。
关于href属性中javascript的使用可以自行查阅
js加载顺序
js是根据其标签所在位置加载的,当浏览器扫描到js标签时,就会直接执行它。所以这样会导致一个严重的问题:如果你把script标签写的太靠前,就会导致执行时,dom树还未建立,导致诸如getElementById等获取元素对象的方法总是返回 undefined。
所以我们如果要想使用dom(也就是想要通过document对象对文档进行操作)就必须吧script节点写在文档的后面(比如body的最下面,或者body的下面)
小技巧
js是可以把函数作为参数进行传递的。但是传入时,我们无法对其传入参数,否则js就会误以为该方法执行后会返回一个函数,比如:
function a(index){/* .... */}
setTimeout(a(1),1000);
但是,如果在函数内进行实现,往往很麻烦。这时我们可以
function a(index){/* .... */}
setTimeout(function(){
a(1);
},2000);
即定义一个匿名函数,然后在其内调用目标函数并传值。
网友评论