2014-04-22 15 views
5

değil ben:addClass ("test") hata vermek: TypeError: tanımsız konsolunda bir işlev

$(".myCssClass")[0].parentNode 
<li><span class="myCssClass">some text</span></li> 

Ben ebeveyn span için css sınıfını eklemek istediğiniz, etiket için denedim <li>

böyle:

$(".myCssClass")[0].parentNode.addClass("test") 
TypeError: undefined is not a function 

Ben 1.5.2

+4

Gerçekten bir soru sormadınız. –

cevap

24

jQuery kullanmak, jQuery nesnelerinin bir yöntemidir. $(".myCssClass")[0]'u kullandığınızda, jQuery sarıcısı değil, gerçek öğeye sahip olursunuz. Sonra

şunları yapabilirsiniz:

$($(".myCssClass")[0].parentNode).addClass("test") 
  • Sadece jQuery nesneleri ile çalışmak:

    $(".myCssClass").eq(0).parent().addClass("test") 
    
  • düz ile Ders ekle

    • yine bir jQuery nesnesine sarın JavaScript (eski tarayıcılarda desteklenmez):

      $(".myCssClass")[0].parentNode.classList.add("test") 
      
  • 1

    Kullanım .parent()

    $(".myCssClass").parent().addClass("test") 
    

    .addClass() jQuery seçicileri karşı tek kullanılabilir.

    Alternatif çözüm Eğer $() gibi sarmalamak ihtiyaç birine dönüştürmek için,

    $(".myCssClass")[0].parentNode bir jQuery nesne değil (üst belirtilen çözümü üzerinde ancak tamamlama uğruna bu tavsiye etmem) Bu

    $($(".myCssClass")[0].parentNode) // jQuery seçici şimdi addClass()

    , $($(".myCssClass")[0].parentNode).addClass("test")

    İlgili konular