2011-06-10 8 views

cevap

28

Tek tırnak işaretleri içinde, dizeyi ayıran tek tırnak işaretleri kullanmanın yanı sıra, if ifadesinin içinde bir jQuery seçici kullanıyorsunuz. This selector sadece b etiketlerinizi "Bir alt kategori seçin" etiketini filtreler; ve sonra bu elemanların bir listesini döndürür. Bir boole döndürmez. Bunun yerine, bu yüzden gibi .contains() yöntemi kullanın:

if($("b").contains("Choose a sub category")) { 
    // do stuff 
} 

Daha here

EDIT okuyabilir:

: .contains() yöntem kaldırılacaktır görünüyor, çünkü burada saf bir JS çözüm
var el = document.getElementById("yourTagId") // or something like document.getElementsByTagName("b")[0] if you don't want to add an ID. 
if (el.innerHTML.indexOf("Choose a sub category") !== -1) { 
    // do stuff 
} 
+4

Maalesef bu 'jQuery(). Includes' yöntemi artık mevcut değil ya da en azından tüm bunları kullanmak için kullandığım girişimde 'herhangi bir işlev çağrısı yok' hatası tetikleniyor. 'jQuery.contains' var, ancak bu, özellikle DOM öğeleriyle ve metin dizeleriyle kullanım içindir. Şahsen ben bir '' içerir' seçicisini yapılandırmak yerine bir yöntem çağrısı kullanmak isterim, bu yüzden jQuery bunu kaldırırsa oldukça can sıkıcı olur. – Pebbl

+0

@Pebbl jQuery ile ilgili sorun budur. Burada sadece birkaç satır olduğu için yerel JS'yi daha iyi hale getirmek çok daha iyi. –

+0

Bu çözüm metin için hiç işe yaramadıysa, artık [bu belge] (https://api.jquery.com/jQuery.contains/) uyarınca yanıt vermez ve yanıt artık doğru olarak işaretlenmemelidir. ovahernow'un çözümü, soruya gereken şekilde metin için çalışır. – Luke

17

Bir öğenin var olup olmadığını belirlemek için bunu her zaman kullandım:

tek tırnak ('') içine
if ($('b:contains("Choose a sub category:")').length > 0) { /*do things*/} 
+0

Mevcut öğeleri kontrol etmenin önerilen yolu olduğundan neden düşürmediğimi bilemiyorum: http://stackoverflow.com/questions/4592493/jquery-check-if-element-exists – ovaherenow

+1

ben de; Downvoter'ın bu özel duruma adanmış bir jQuery '.contains() yöntemi olduğu kadar ideal görmediğine inanıyorum. Unutmayın, OP var olup olmadığını kontrol etmek istemiyor, sadece kalın etiketin metin içerip içermediğini görmek istiyor. Her iki çözümümüz de çalışırken, benimki sadece biraz daha doğru bir şekilde doğrudur. :) Yine de seni reddettim. :) –

+0

Teşekkürler Tom. Ben de seninkile giderdim. Sadece mevcut kodunu düzeltmek istedim. Ben de seninkini kestim. – ovaherenow

4
if ($("b").has(":contains('Choose a sub category:')").length) { 
/*Your Stuff Here*/ 
}