我有一个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不是函数
如何解决,请帮助。
谢谢。
答案 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。