jQuery包含在Chrome上不起作用

时间:2015-05-12 12:20:19

标签: javascript jquery google-chrome contains

我有一个jquery包含的问题。它在firefox上运行完美。

这是我的代码。

$("input[data-height='cm']").blur(function(){
    var text = $(this).val();

    if($(this).val().length > 0) {
        if(!$(this).val().contains("cm")) {
            $(this).val(text + " cm");
        }
    }
});

在chrome上它会给出错误

  

未捕获的TypeError:$(...)。val(...)。contains不是函数

如何解决,请帮助。

谢谢。

4 个答案:

答案 0 :(得分:9)

使用indexOf代替contains

 if($(this).val().indexOf("cm") == -1) {
    $(this).val(text + " cm");
 }

答案 1 :(得分:4)

.contains()检查DOM元素是否是另一个DOM元素的后代,因此您应该将它与jquery对象一起使用:

您可以使用indexOf()函数检查value属性的内容。

if($(this).val().indexOf("cm")>=0) {

}

您可以参考.contains()了解更多信息。

答案 2 :(得分:3)

您可以使用<select name="test" multiple> <option>123</option> <option>456</option> <option>789</option> </select>

test

答案 3 :(得分:2)

Chrome中没有contains这样的方法。相反,您最好使用indexOf

// Instead of...
if ($(this).val().contains('cm')) { /* val() contains 'cm' */ }
// ...do this:
if ($(this).val().indexOf != -1) { /* val() contains 'cm' */ }

请注意,如果在字符串中找不到出现,则indexOf返回-1,如果找到出现,则{> 1 = = 0。