2013-07-20 72 views
3

我有一個產品列表,我想通過輸入參數查找產品列表。所以我使用contains來查找產品列表中的輸入字符串。它的網頁工作正常。但是當我打開移動網頁中的同一頁面時,它不工作。並給出一個錯誤,「包含」未定義。'.contains'在Android手機中不起作用,但在網頁中工作正常

if(productlist[i].name.toLowerCase().contains(input_val.toLowerCase())) 

    --my business logic-- 

之後,我已經試過indexOf然後它在兩種情況下工作正常。

if(productlist[i].name.toLowerCase().indexOf(input_val.toLowerCase()) !== -1) 
    --my business logic -- 

什麼是.contains問題?

+1

也許你的andriod瀏覽器不支持該功能?只需使用'indexOf'。你用什麼'eval'作爲? – Shawn31313

+1

肖恩是正確的,根據Mozilla,Android不支持包含。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/contains – JConstantine

+1

.contains是JavaScript Harmony功能(ES6/ES.next)。但是,您可以創建自己的「包含」功能。 'String.prototype.contains = function(){...};' – Shawn31313

回答

2

使用該填充工具,(參考:MDN

if(!('contains' in String.prototype)) { 
    String.prototype.contains = function(str, startIndex) { 
     return -1 !== String.prototype.indexOf.call(this, str, startIndex); 
    }; 
} 

Compatibility table在我可以用...

更新:你也可以檢查this answer

+0

@ Shawn31313,是的,絕對是這樣,但問題是'.contains'不是在Android手機上工作,但在網頁上工作正常'所以回答相關問題。 –

相關問題