0

任何人都可以告诉我,这三件事有什么不同。

if ( document.location.href.indexOf('#Work') > -1 ) {
    $('#elementID').animate({"left": "250"}, "slow");
}


 if ( document.location.href.indexOf('#Work') > 0 ) {
    $('#elementID').animate({"left": "250"}, "slow");
}


if ( document.location.href.indexOf('#Work') != -1 ) {
    $('#elementID').animate({"left": "250"}, "slow");
}
4

3 回答 3

4

“IndexOf”方法将返回在其父级中找到字符串的位置整数。在这种情况下, document.location.href中的“#Work”

  1. "> -1" 找到字符串时返回。

  2. "> 0" 在第一个字符之后找到字符串时返回

  3. "!= -1" 找到字符串时返回,与位置无关(与 #1 相同)

顺便说一句 - 这是核心 Javascript 而不是 Jquery。

于 2012-10-29T05:52:14.737 回答
1

第一个和第三个例子几乎相同。indexOf-1在找不到子字符串时返回,因此它们的工作方式相同。

href="#Work". #Work从字符串中的第一个字符开始,所以indexOf会返回0.

于 2012-10-29T05:50:24.893 回答
0

javascript indexOf() 方法返回指定值在字符串中第一次出现的位置,如果要搜索的值从未出现,则返回 -1。所以从技术上讲,第一个和第三个是等价的。如果要搜索的值出现在字符串的开头,第二个将无法按预期工作。

于 2012-10-29T05:57:13.260 回答