为什么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');
}
答案 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
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开始,我怀疑移动浏览器支持它