任何人都可以告诉我,这三件事之间有什么不同。
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");
}
答案 0 :(得分:4)
“IndexOf”方法将返回在其父级中找到字符串的位置的整数。 在这种情况下, document.location.href
中的“#Work”“> -1”找到字符串时返回。
“> 0”在第一个字符后找到字符串时返回
“!= -1”找到字符串时返回,无论在何处(与#1相同)
BTW - 这是核心Javascript,而不是Jquery。
答案 1 :(得分:1)
第一个和第三个例子几乎相同。 indexOf
仅在无法找到子字符串时返回-1
,因此它们的工作方式相同。
href="#Work"
时,第二个示例将失败。 #Work
从字符串中的第一个字符开始,因此indexOf
将返回0
。
答案 2 :(得分:0)
javascript indexOf()方法返回字符串中第一次出现指定值的位置,如果要搜索的值永不发生,则返回-1。 所以从技术上讲,第一和第三是等价的。如果要搜索的值出现在字符串的开头,则第二个将无法按预期工作。