Javascript ';。包含';在安卓手机上不工作,但在网页上工作正常
我有一个productlist,我想通过输入参数删除productlist。因此,我使用Javascript ';。包含';在安卓手机上不工作,但在网页上工作正常,javascript,Javascript,我有一个productlist,我想通过输入参数删除productlist。因此,我使用contains在productlist中划出输入字符串。它可以很好地处理网页。但当我在手机网页中打开同一个页面时,它就不起作用了。并在not define中给出一个“包含”的错误 if(productlist[i].name.toLowerCase().contains(input_val.toLowerCase())) --my business logic-- 之后,我尝试了indexOf,
contains
在productlist中划出输入字符串。它可以很好地处理网页。但当我在手机网页中打开同一个页面时,它就不起作用了。并在not define中给出一个“包含”的错误
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 --
问题是什么。包含 使用此Polyfill(参考:)
请参阅我可以使用的
更新:您也可以检查。可能您的andriod浏览器不支持该功能?只需使用
indexOf
。你用eval做什么?Shawn是正确的,根据Mozilla的说法,Android不支持contains。contains是一个JavaScript和谐特性(ES6/ES.next)。但是,您可以创建自己的contains
函数String.prototype.contains=function(){…}代码>我在使用eval,因为productlist是从服务器提交的,格式不同eval将格式更改为字符串。谢谢@JLevett@KousikChowdhury从来没有理由使用eval。你可以使用String(productlist)
或productlist.toString()
或者如果它是一个对象JSON.stringify(productlist)
@shawn3131313,是的,当然是,但问题是”。contains在android手机上不起作用,但在网页上可以正常工作
,所以回答相关的问题。
if(!('contains' in String.prototype)) {
String.prototype.contains = function(str, startIndex) {
return -1 !== String.prototype.indexOf.call(this, str, startIndex);
};
}