我有一个 ajax 函数,它根据下拉列表中的选定值获取一些值。我正在尝试基于子字符串启用/禁用某些字段。我发现“包含”可以在 Firefox 中工作,但在 chrome 和 safari 中的测试告诉我该对象“没有方法包含”
if ($d.attr("embed").contains('$var_2$')) {
//do something
} else {
// do something else
}
是否有替代包含适用于所有浏览器的替代方法?
你在那里使用的是String.contains
,不是jQuery.contains
。这是因为您在.attr
s 返回值上使用该函数,它是一个字符串,而不是一个 jQuery 对象。
要使用jQuery.contains()
(可以跨浏览器使用),您可以这样做:
$d.contains('$var_2$')
但请注意,这不仅会搜索指定的属性,还会搜索整个元素。
所以你最可能想做的是使用String.indexOf()
(也可以跨浏览器使用):
$d.attr("embed").indexOf('$var_2$') != -1
您可以使用indexOf
,它应该适用于所有浏览器。
if ($d.attr("embed").indexOf('$var_2$') > -1) {
//do something
} else {
// do something else
}
您可以使用indexOf代替 contains。