<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")

解决方案 »

  1.   

    JavaScript里没有equal方法
    P.S.JavaScript中推荐使用3个等号 === 来比较  == 默认有类型转换
      

  2.   

    7楼正解,JS里面没有类型的说法,java里面的equals方法,也是针对不同的类型也有不同的重写的
    JS里面要比较是否相同,那直接用 "==" 来就可以了... 
    "==="这个符号我没用过
      

  3.   

    To 4L:
    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,否则两个运算数不等。