使用jQuery和jQuery URL插件.
我有以下代码:
$('#secondary-nav > li > ul > li > a').each( function() {
var aHref = new String( $(this).attr('href') );
alert (aHref);
var wUrl = new String( $.url().attr('file') );
alert (wUrl);
alert ( aHref === wUrl );
});
Run Code Online (Sandbox Code Playgroud)
aHref和wUrl都是字符串对象(我已使用instanceof确认).但比较结果却是错误的.代码在"pageA.html"上,其中一个锚点的href是"pageA.html",但它从未计算为true.
Javascript在字符串值和String 对象之间区分,令人困惑.更令人困惑的是,它们在许多情况下都是可以互换的; ===是少数几个真正有所作为的案例之一.对于对象,===测试双方是否是同一个对象,由一个特定的构造函数调用创建.另一方面,字符串值按内容进行比较.
有了您的new String(...)您明确要求获得实际的字符串对象从你喂到构造函数的值.这意味着您===在以后比较它们时会严格意识到这一点.
要解决您的问题,只需省略new String代码即可.
| 归档时间: |
|
| 查看次数: |
483 次 |
| 最近记录: |