Javascript中void是一个操做符,该操做符指定要计算一个表达式可是不返回值。javascript
void 操做符用法格式以下:java
1. javascript:void (expression)express
2. javascript:void expression安全
expression 是一个要计算的 Javascript 标准的表达式。表达式外侧的圆括号是选的,可是写上去是一个好习惯。jsp
你以使用 void 操做符指定超级连接。表达式会被计算可是不会当前文档处装入任何内容。测试
1:<a href="####"></a>动画
2:<a href="javascript:void(0)"></a>事件
3:<a href="javascript:void(null)"></a>ip
4:<a href="#" onclick="return false"></a>文档
点击连接后,页面会向上滚到页首,# 默认锚点为 #TOP(实际测试发现 滚动条会滚到顶端)而以上四种方法仅仅表示一个死连接都表示是一个死连接不会跳转也不会返回到顶部.
<a href="javascript:void(0)" onclick="delete('123')">删除</a>
function delete(id){
if(confirm("确实要删除[为何location.href不自动跳转?]吗?")) {
location.href="/delete.jsp?id=" + id;
}
}
以上代码无论如何检查都没有任何问题,而location.href="/delete.jsp?id=" + id;在别的地方都好使,为何这段代码就行呢?
缘由是那个void(0)把代码改为:
<a href="javascript:delete('123')">删除</a>function delete(id) {
if(confirm("确实要删除[为何location.href不自动跳转?]吗?")) {
location.href="/delete.jsp?id=" + id;
}
}
咱们发现,页面当即就跳转了,能正常删除相应的数据.为何呢?
由于void是一个操做符,会计算一个表达式,但不会返回值,固然也不会改变当前页面的任何内容,也就不会正常的跳转.
void 运算符对表达式求值,并返回 undefined。在但愿求表达式的值,但又不但愿脚本的剩余部分看见这个结果时,该运算符最有用。
连接(href)直接使用javascript:void(0)在IE中可能会引发一些问题,好比:形成gif动画中止播放等,因此,最安全的办法仍是使用“#”。为防止点击连接后跳转到页首,onclick 事件 return false便可。