jQuery:contains()适用于Firefox但不适用于Chrome/Safari

ric*_*chj 10 jquery contains

我有一个ajax函数,它根据下拉列表中的选定值获取一些值.我正在尝试根据子字符串启用/禁用某些字段.我发现'contains'可以在firefox中运行,但在chrome和safari中测试告诉我对象'没有方法包含'

if ($d.attr("embed").contains('$var_2$')) { 
    //do something
} else {
    // do something else
}
Run Code Online (Sandbox Code Playgroud)

是否有包含的替代品可以在所有浏览器中使用?

oez*_*ezi 18

你在那里使用的是String.contains,而不是jQuery.contains.这是因为你在.attrs返回值上使用函数,它是一个String,而不是一个jQuery-Object.

使用jQuery.contains()(使用跨浏览器工作),你可以这样做:

$d.contains('$var_2$')
Run Code Online (Sandbox Code Playgroud)

但请注意,这不仅会搜索指定的属性,而是搜索整个元素.

所以你最想做的就是使用String.indexOf()(这也适用于跨浏览器):

$d.attr("embed").indexOf('$var_2$') != -1
Run Code Online (Sandbox Code Playgroud)