<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
<script language="javascript">
function change(){
var dv=document.getElementById("myAnchor");
if(dv.href=="http://www.sohu.com"){
dv.href="http://www.sina.com";
dv.innerHTML="<font color='red'>新浪</font>";
}else{
dv.href="http://www.sohu.com";
dv.innerHTML="<font color='blue'>搜狐</font>";
}
}
</script>
</head><body>
<a id="myAnchor" href="http://www.sohu.com">搜狐</a><input type="button" value="使用DOM改变链接" onClick="change()">
</body>
</html>为什么比较使用的是==而不是equals,equals会出错????
if(dv.href=="http://www.sohu.com")
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
<script language="javascript">
function change(){
var dv=document.getElementById("myAnchor");
if(dv.href=="http://www.sohu.com"){
dv.href="http://www.sina.com";
dv.innerHTML="<font color='red'>新浪</font>";
}else{
dv.href="http://www.sohu.com";
dv.innerHTML="<font color='blue'>搜狐</font>";
}
}
</script>
</head><body>
<a id="myAnchor" href="http://www.sohu.com">搜狐</a><input type="button" value="使用DOM改变链接" onClick="change()">
</body>
</html>为什么比较使用的是==而不是equals,equals会出错????
if(dv.href=="http://www.sohu.com")
P.S.JavaScript中推荐使用3个等号 === 来比较 == 默认有类型转换
JS里面要比较是否相同,那直接用 "==" 来就可以了...
"==="这个符号我没用过
JavaScript里面还是有类型的概念的,没有类型检验不代表没有类型比如下面的代码,证明了==是有对两边的操作数进行类型转换的alert(0 == false);
alert("9" == 9);而 === 不进行类型转换,进行比较alert(0 === false);
alert("9" === 9);
P.S.执行类型转换的基本规则如下: q 如果一个运算数是Boolean值,在检查相等性之前,把它转换成数字值。false转换成0,true转换成1。 q 如果一个运算数是字符串,另一个是数字,在检查相等性之前,要尝试把字符串转换成数字。 q 如果一个运算数是对象,另一个是字符串,在检查相等性之前,要尝试把对象转换成字符串(调用toString()方法)。 q 如果一个运算数是对象,另一个是数字,在检查相等性之前,要尝试把对象转换成数字。 在进行比较时,该运算符还遵守下列规则: q 值null和undefined相等。 q 在检查相等性时,不能把null和undefined转换成其他值。 q 如果某个运算数是NaN,等号将返回false,非等号将返回true。重要提示:即使两个运算数都是NaN,等号仍然返回false,因为根据规则,NaN不等于NaN。 q 如果两个运算数都是对象,那么比较的是它们的引用值。如果两个运算数指向同一个对象,那么等号返回true,否则两个运算数不等。