href识别之间的区别

时间:2012-10-29 05:48:50

标签: javascript jquery

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

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

3 个答案:

答案 0 :(得分:4)

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

中的“#Work”
  1. “> -1”找到字符串时返回。

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

  3. “!= -1”找到字符串时返回,无论在何处(与#1相同)

  4. BTW - 这是核心Javascript,而不是Jquery。

答案 1 :(得分:1)

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

href="#Work"时,第二个示例将失败。 #Work从字符串中的第一个字符开始,因此indexOf将返回0

答案 2 :(得分:0)

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