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