为什么javascript包含属性在chrome浏览器中不起作用?

时间:2013-10-25 12:08:24

标签: javascript

为什么javascript包含属性在Chrome浏览器中不起作用?   我在javascript中试过包含Property。它在Mozila Firefox浏览器中工作正常。但它无法在Chrome浏览器中运行。如何解决这个问题?

链接: http://www.codingslover.com/2014/11/why-javascript-contains-property-is-not.html

var ClearFilterValue='family Schools';
if(ClearFilterValue.contains("family")== true) {
      alert('Success');
}

6 个答案:

答案 0 :(得分:31)

indexof 会返回字符串的位置。如果没有找到,它将返回-1

var ClearFilterValue = 'family Schools';
alert(ClearFilterValue.indexOf("family") != -1);

答案 1 :(得分:12)

contains is not supported in Chrome,但你可以使用polyfill:

if (!String.prototype.contains) {
    String.prototype.contains = function(s) {
        return this.indexOf(s) > -1
    }
}
'potato'.contains('tat') // true
'potato'.contains('tot') // false

答案 2 :(得分:6)

实际上,根据MDN

,Chrome不支持String.contains

以下是解决问题的方法:

<强>填充工具

您可以轻松地填充此方法:

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

var ClearFilterValue = 'family Schools';
if (ClearFilterValue.contains("family") == true) {
    alert('Success');
}

演示:Fiddle

答案 3 :(得分:3)

  

您必须了解为什么包含无效。其实那里   有两种方法包含包含,两者都有不同   的使用。

包含:

  

contains()方法返回一个布尔值,表示是否为   node是指定节点的后代。

     

后代可以是孩子,孙子,曾孙等等。

?rollmean
  

div的结果将是:

user_num = 20

while(user_num>=1):
    print(user_num/2)
    user_num = float(input())

请找jsfiddle

包括:

  

检查字符串是否包含“world”:

var span = document.getElementById("mySPAN");
var div = document.getElementById("myDIV").contains(span);
  

n的结果将是:

true
  

定义和用法

     

includes()方法确定字符串是否包含   指定字符串的字符。

     

如果字符串包含字符,则此方法返回true     如果没有,则为假。

     

注意:includes()方法区分大小写。

请找jsfiddle

  

最后你可以使用indexOf方法来实现同样的目的   输出

var str = "Hello world, welcome to the universe.";
var n = str.includes("world");

希望这有意义

答案 4 :(得分:1)

使用您自己的contains方法并覆盖firefox的contains()方法。因为这种方法被广泛使用,我的意思是 - &gt; (indexof)。

String.prototype.contains = function(str) { return this.indexOf(str) != -1; };

答案 5 :(得分:1)

我认为你应该使用indexOf

var ClearFilterValue = 'family Schools';
if(ClearFilterValue.indexOf("family") !== -1) {
      alert('Success');
}

也不确定你是否应该制作一个polyfill,因为几乎没有浏览器似乎支持它https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/contains

IE没有支持它,Chrome显然从30开始,FF从19开始,我怀疑移动浏览器支持它