2013-08-10 26 views
10

संदर्भ: मैं एक फॉर्म और स्क्रिप्ट बना रहा हूं जो एक विशिष्ट बटन पर क्लिक करने के आधार पर एक AJAX क्वेरी करेगा। एक ही कक्षा के तत्वों के साथ कई div ब्लॉक हैं, और div ब्लॉक के आधार पर, एक बटन क्लिक किया जाता है, विभिन्न रूपों को संसाधित किया जाएगा।प्रत्येक भाई तत्व पर इटरेट

प्रोग्राम शुरू करने के हिस्से के रूप में, मैंने एक स्पष्ट रूप से सरल jQuery कॉल शुरू किया है।

मैं एक विशिष्ट वर्ग में एक ऑनक्लिक घटना जोड़ने की कोशिश कर रहा हूं, और फिर उस तत्व के भाई बहनों के सीएसएस मूल्य को प्राप्त करने का प्रयास कर रहा हूं।

त्रुटि: मैं यह बताते हुए कि TypeError: this.siblings is undefined एक त्रुटि हो रही है।

प्रश्न: jQuery का उपयोग कर किसी तत्व के भाई बहनों को फिर से शुरू करने का उचित तरीका क्या है?

मेरे कोड:

HTML:

<a class="btn LiveStatsBtn"><span class="btn-label">Get Stats now</span> </a> 

जावास्क्रिप्ट:

$(document).ready (function() 
{ 
    $('.LiveStatsBtn').click(function(){ 
     this.siblings.each(function() { 
      var tx=this.css(); 
      alert(tx); 
     }); 
    }); 
}); 

उत्तर

17

एक jQuery ईवेंट हैंडलर में, this डोम तत्व को संदर्भित करता है, और एक jQuery वस्तु नहीं है। आप एक में लपेट के लिए है:

$(this).siblings().each(function() { 
    // ... 
}); 

इसके अलावा, ध्यान दें कि "भाई बहन" एक समारोह है ताकि आप एक नए jQuery उद्देश्य यह है कि तत्व भाई बहन लपेटता प्राप्त करने के लिए कॉल करने के लिए की है।

1

siblings, एक समारोह है तो यह कोष्ठकों की जरूरत है:

$(document).ready (function() 
{ 
    $('.LiveStatsBtn').click(function(){ 
     $(this).siblings().each(function() { 
      var tx=$(this).css(); 
      alert(tx); 
     }); 
    }); 
}); 

http://api.jquery.com/siblings/

संबंधित मुद्दे