1. 程式人生 > >相容所有瀏覽器的indexof()方法

相容所有瀏覽器的indexof()方法

if(!Array.prototype.indexOf){
  Array.prototype.indexOf=function(obj,start){
    for(var index=(start || 0), j=this.length;index<j;index++){
      if(this[index]===obj){ 
        return index; 
      }
    }
    return -1;
  }
}
var arr=[1,2,3,4,5];

console.log(arr.indexOf(3,1))

一.程式碼註釋:

(1).if(!Array.prototype.indexOf){},判斷當前瀏覽器是否支援indexOf()方法。

(2).Array.prototype.indexOf=function(obj,start){},如果不支援,那麼就自定義一個indexOf()方法,第一個引數是要查詢的元素,第二個引數表示查詢的起始位置。

(3).for(var index=(start || 0), j=this.length;index<j;index++){

  if(this[index]===obj){ 

    return index;

  }

}如果沒有傳遞start引數,那麼就是從索引值為0的位置開始查詢,也就是第一個位置開始查詢。

通過遍歷的方式找到指定元素,然後返回索引值。

(4).return -1,沒有找到就返回-1。


相關推薦

相容所有瀏覽器indexof()方法

if(!Array.prototype.indexOf){  Array.prototype.indexOf=function(obj,start){    for(var index=(start || 0), j=this.length;index<j;index+

一段js實現複製文字內容到剪下板(該方法相容所有瀏覽器~)

function copyUrl2() { var Url2=document.getElementById("biao1").innerText; var oInput = document.createElement('input'); oInpu

css實現多行文字超出省略號顯示,相容所有瀏覽器

原文連結:https://github.com/happylindz/blog/issues/12 float 特性實現多行文字截斷 基本原理 有個三個盒子 div,粉色盒子左浮動,淺藍色盒子和黃色盒子右浮動, 當淺藍色盒子的高度低於粉色盒子,黃色盒子仍會處於淺藍色盒子右下方。 如果淺藍

js複製內容,相容所有瀏覽器

大概思路: 創造一個新的節點,用完後刪除 var oInput = document.createElement('input'); oInput.value = '複製內容'; document.body.appendChild(oInput); oInput.select();//選

原生JS相容所有瀏覽器獲取瀏覽器高度和寬度,響應式佈局 js 獲取瀏覽器高度和寬度值(相容瀏覽器)

var width = window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;

自定義滾動條樣式相容所有瀏覽器

萬惡的瀏覽器相容 看人家chrome多麼友好,幾行css就能自定義樣式,ie和火狐各種不行,如果只要求部分相容的可以直接用css寫 chorme <div class="bar"></

獲取scrollTop相容瀏覽器方法

NO.2 var scrollTop = window.pageYOffset //用於FF || document.documentElement.scrollTop || document.body.scrollTop

js實現複製到剪貼簿功能,相容所有瀏覽器

前段時間做專案的時候,有點選按鈕複製文字的需求,想使用操作windows剪下板實現,在網上查了些資料,發現目前好像只有IE支援直接訪問剪下板,實現需求的時候也只做了IE中的點選複製功能,其餘瀏覽器: if(window.clipboardData){ window.clip

相容所有瀏覽器的“收藏本站”、“設為首頁”js程式碼

設為首頁 和 收藏本站js程式碼 相容IE,chrome,ff,360等 將以下程式碼放到首頁 或者新建js檔案 <script type="text/javascript"> //設為首頁 www.ecmoban.com function SetHo

WEB頁面列印預覽、列印 相容所有瀏覽器

因專案裡要做頁面列印預覽以及列印功能,還要求相容大部分主流瀏覽器 實現方式有很多最後決定用window.print();大部分瀏覽器都適用, window.print()方式ie瀏覽器不支援列印預覽,針對ie瀏覽器的預覽用ie自有列印元件 WebBrowser.ExecWB實現 ie瀏覽器預覽時要把不需要預

加入收藏js程式碼 相容所有瀏覽器

我們介紹一個可相容所有瀏覽器的加入收藏程式碼程式碼,大概原理是這樣的我們根據獲取使用者navigator.userAgent.toLowerCase()資訊來判斷瀏覽器,根據瀏覽器是否支援加入收藏js命令,如果可以自動收藏否則就提示ctrl+D手動收藏了。  程式碼如下

轉換textarea換行符終極解決辦法(相容所有瀏覽器

<script type="text/javascript"> var s = document.getElementById('textarea1').value; str.replace(/\r/ig, "").replace(/\n/ig, ",");

flash遮住div層解決辦法(相容所有瀏覽器)

大家最常用的辦法就是 •ie:在<object>標籤中增加:  程式碼如下 複製程式碼 <param name=“wmode” value=“transparent”>   •   •Firefox:在  程式碼如下 複製程式碼 <o

vue-cli 專案相容ie瀏覽器方法

問題描述 ie11開啟vue2.0專案空白,控制檯報錯 vuex requires a Promise polyfill in this browser; 原因 Babel 預設只轉換新的 JavaScript 句法(syntax),而不轉換新的 API ,比如 Ite

寫一個function,清除字串前後的空格。(相容所有瀏覽器

if(!String.prototype.trim){ String.prototype.trim=function(){ //利用正則匹配去除字串前後空格 re

CSS文字超過兩行用省略號代替(相容所有瀏覽器)

方法一:常規寫法(只相容Chrome核心瀏覽器) 完整程式碼供參考: <!DOCTYPE html> <html lang="en" dir="ltr"> <head> <meta charset="utf

幾乎相容所有瀏覽器的html5視訊播放策略

1:JS方式 使用html5media.js可以在所有瀏覽器上觀看html5視訊和音訊檔案,它彌補了低版本IE瀏覽器不支援<video>和<audio>標籤,只需要載入html5media.js使用<video>和<audio>

瀏覽器相容問題及解決方法彙總(持續更新......)

一、出現相容問題的原因:         瀏覽器種類很多,但是區別主要在瀏覽器核心的不同,所以各核心對網頁的解析差異,是導致瀏覽器相容問題出現的主要原因。關於瀏覽器核心(browser kernel),是瀏覽器最為核心

所有瀏覽器的首頁(主頁)被篡改?不知道哪個軟體修改的?或許你應該試試這個方法

不知道哪個軟體修改了我的主頁 如果主頁被篡改,而你又不想引入一大堆安全軟體到你的電腦中。 當每一段時間(比如說一小時)就會被修改成hao123或其他網址,你還找不到是哪個軟體修改的,那麼你可以看看這段程式碼: On Error Resume Next:Const

html+css瀏覽器相容問題及應對方法

相容:瀏覽器相容是前端程式碼書寫中常遇見的問題,隨瀏覽器更新,更多功能完善的新屬性未必能得到大範圍的支援,總結相容寫法或者樣式的方法又會因為時間推移而逐漸失效,這裡提供一些方法以作參考。 瀏覽器市場:程式碼功能用於服務物件,確定服務物件所使用的瀏覽器範圍,能幫助編寫者明確目標。 這裡是瀏