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

时间:2013-07-03 06:19:46

标签: jquery contains

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

if ($d.attr("embed").contains('$var_2$')) { 
    //do something
} else {
    // do something else
}

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

3 个答案:

答案 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代替包含。