2014-04-22 20 views
5

नहीं है कंसोल में मेरे पास है:addClass ("परीक्षण") त्रुटि दे: लेखन त्रुटि: अपरिभाषित एक समारोह

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

मैं माता पिता span के लिए सीएसएस वर्ग जोड़ना चाहते हैं, टैग के लिए <li>

मैंने कोशिश की इस तरह:

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

मैं jQuery के 1.5.2

+4

आपने वास्तव में एक प्रश्न नहीं पूछा है। –

उत्तर

24

का उपयोगjQuery ऑब्जेक्ट्स की एक विधि है। जब आप $(".myCssClass")[0] का उपयोग करते हैं, तो आपके पास वास्तविक तत्व है, न कि jQuery wrapper।

फिर, आप कर सकते हैं:

$($(".myCssClass")[0].parentNode).addClass("test") 
  • केवल jQuery वस्तुओं के साथ काम:

    $(".myCssClass").eq(0).parent().addClass("test") 
    
  • सादा के साथ कक्षा जोड़ें

    • फिर से एक jQuery वस्तु को यह लपेटें जावास्क्रिप्ट (पुराने ब्राउज़रों पर समर्थित नहीं है):

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

    उपयोग .parent()

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

    .addClass() केवल jQuery चयनकर्ताओं के खिलाफ इस्तेमाल किया जा सकता है।

    वैकल्पिक समाधान

    $(".myCssClass")[0].parentNode एक jQuery वस्तु नहीं है (ऊपर उल्लेख किया समाधान से अधिक लेकिन पूरा होने की खातिर इस सिफारिश नहीं होगा), एक आप $() तरह के साथ रैप करने की जरूरत है में परिवर्तित करने के इस

    $($(".myCssClass")[0].parentNode) // jQuery चयनकर्ता

    अब addClass()

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

    +०१२३५१६४१०
    संबंधित मुद्दे