配列中で与えられた要素が見つけられた最初の添字を返します。
もし存在しなければ -1 を返します。
var array = [2, 5, 9];
var index = array.indexOf(2);
// index is 0
index = array.indexOf(7);
// index is -1

が!

IE6では動かない、、、


以下回避法

-----------------------------------------------

if (!Array.prototype.indexOf)
{
  Array.prototype.indexOf = function(elt /*, from*/)
  {
    var len = this.length;

    var from = Number(arguments[1]) || 0;
    from = (from < 0)
         ? Math.ceil(from)
         : Math.floor(from);
    if (from < 0)
      from += len;

    for (; from < len; from++)
    {
      if (from in this &&
          this[from] === elt)
        return from;
    }
    return -1;
  };
}

---------------------------------------------------------

このソースを使用前に入れればいいそうです。


参考

https://developer.mozilla.org/ja/Core_JavaScript_1.5_Reference/Global_Objects/Array/indexOf




感想

ブラウザ依存は時代と共に変化するから

書き残しても直ったり、逆にどんどん離れて回避法が変わる場合も考えられそう。

jsは一番、目に映って楽しい言語だと思っていたが一番めんどくさい言語なのかも、、、

Dreamweaverには普通についていそうな機能だが

秀丸などテキストエディター派の人に便利なjavascriptを紹介


エディタで編集するだけでhtmlファイルをリロードするJavaScript



(function () {
  var last = null;
  (function request() {
    with (new XMLHttpRequest()) {
      open('get', location.href, true);
      send(null);
      onload = function () {
        if (!last || last == this.responseText) {
          last = this.responseText;
          setTimeout(request, 500);
        } else {
          location.reload(true);
        }
      };
    }
  })();
})();


このコードをHTMLに書いてると編集してセーブした瞬間ブラウザにリロードがかかります。

F5やマウスジェスチャーの↑↓さえ必要なくなります。


これマジで便利、、、、


追記:IE6だと動かない、、、