0

この3つの違いは何ですか、誰でも教えてください。

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

1 番目と 3 番目の例はほとんど同じです。部分文字列が見つからなかった場合にindexOfのみ返されるため、同じように機能します。-1

2 番目の例は、次の場合に失敗しhref="#Work"ます。#Workは文字列の最初の文字から始まるので、indexOfを返し0ます。

于 2012-10-29T05:50:24.893 に答える
0

JavaScript の indexOf() メソッドは、文字列内で指定された値が最初に出現した位置を返し、検索する値がまったく出現しない場合は -1 を返します。したがって、技術的には、1 番目と 3 番目は同等です。また、検索する値が文字列の先頭にある場合、2 つ目は期待どおりに機能しません。

于 2012-10-29T05:57:13.260 に答える