2015-05-12 30 views
7

jquery içeren bir sorunum var. Firefox'ta mükemmel çalışır.jQuery içeren Chrome üzerinde çalışmıyor

Bu benim kodum.

$("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 ben o yardım lütfen nasıl düzeltebilirim hatayı

Uncaught TypeError: $(...).val(...).contains is not a function

ver.

Teşekkür ederiz.

+0

Bu işlevler bu şekilde çalışmıyor. Muhtemelen 'indexOf',' match' veya 'test' gibi bir şey kullanmak istersiniz. – putvande

+1

"JavaScript dizgisinde" jQuery includes 'yöntemini kullanmaya çalışıyorsunuz. –

+0

, jquery eklentisinin bir yöntemini içerir veya jquery'de dom öğesi seçici ile çağırabilirsiniz, bu dizede dize olamaz. Bunun için bu indexOf kullanmak zorunda. – syms

cevap

8

Kullanım indexOf yerine

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

Referansınız için .. https://api.jquery.com/jQuery.contains/ –

+0

$ .contains bir seçici olarak çalışır. – captainsac

+0

Cevabınız için teşekkürler. –

3

contains Seni test kullanabilirsiniz:

if(!/cm/.test($(this).val())) { 
    $(this).val(text + " cm"); 
} 
2

Chrome'da contains diye bir yöntem yoktur. Bunun yerine, daha iyi indexOf kullanmalısınız:

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

o indexOf döner unutmayın -1 oluşumu dizesinde bulunan ve değilse> oluşumu bulunursa = 0. Bir DOM öğesi başka DOM öğesinin soyundan ise

3

.contains() çekler dolayısıyla jquery Nesneler ile kullanmak gerekir görmek için:

Burada değer özelliğinin içeriğini kontrol etmek indexOf() işlevini kullanabilirsiniz.

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

} 

Daha fazla bilgi için .contains()'a bakabilirsiniz.

İlgili konular