2012-03-17 15 views
7

क्या वैसे भी नेस्टेड jQuery चयनकर्ता हैं।नेस्टेड jQuery चयनकर्ता

उदाहरण के लिए:

अगर पेज भी उस पर एक ID = "LeadEditForm_Title" किसी ऐसे स्थान पर है तो निम्नलिखित करें ...

jQuery("[id='A0.R0.Main Phone Number']").live('mousedown',function(e) { 
    var container = $(this).width(); 
    var width_offset = -50; 
    var top_offset = 25; 
    var width = (container + width_offset).toString(); 
    jQuery(".mywidget").appendTo(document.body).css('width', width + 'px'); 
    jQuery(".mywidget").appendTo(document.body).css('position', 'absolute'); 
    jQuery(".mywidget").appendTo(document.body).css('top', ($(this).offset().top+top_offset).toString() + 'px'); 
    jQuery(".mywidget").appendTo(document.body).css('left', Math.round($(this).offset().left) + 'px'); 
}); 

प्रश्न:

मैं किसी करते हो अगर jQuery(".LeadEditForm_Title") तो उपर्युक्त करें ??? मूल रूप से एक नेस्टेड jQuery कॉल ... मैं जहां वे उदाहरण देखा है:

jQuery(function(){ // my code goes here }); 

लेकिन मैं इसे आईडी ".LeadEditForm_Title" पर निर्भर करना चाहते हैं।

+0

जहां तक जैसा कि मैं बता सकता हूं, वह कार्य ठीक लगता है। –

+2

क्या आपकी आईडी में वास्तव में रिक्त स्थान हैं? एचटीएमएल स्पेक का कहना है कि आईडी में रिक्त स्थान नहीं हो सकते हैं। आम तौर पर आप '#' के साथ आईडी का चयन करते हैं। अर्थात। '$ (" # MyID ")'। –

+0

क्यों 'mousedown' और 'क्लिक' नहीं? इस तरह के रिक्त स्थान भी नहीं हैं, मुझे संदेह है कि यह मान्य होगा। आप इसके बजाय 'data' का उपयोग कर सकते हैं ... – elclanrs

उत्तर

22

घोंसला चयनकर्ताओं के लिए, आपको find का उपयोग करें:

jQuery('#mySelectorId').find('.mySelectorClass') 

यह रूप में अच्छी तरह यह कर के रूप में ही है:

jQuery('#mySelectorId .mySelectorClass') 

के बीच एक रिक्ति डाल करना न भूलें। अंतरिक्ष के बिना आप उस आईडी और उस कक्षा के साथ एक तत्व का चयन कर रहे हैं।

मैं यह भी ध्यान रखें देंगे कि आपके कोड शायद नहीं कर रहा है आप क्या सोचते हैं यह है:

jQuery("[id='A0.R0.Main Phone Number']").live('mousedown',function(e) { 
    var container = $(this).width(); 
    var width_offset = -50; 
    var top_offset = 25; 
    var width = (container + width_offset).toString(); 
    jQuery(".mywidget").appendTo(document.body).css('width', width + 'px'); 
    jQuery(".mywidget").appendTo(document.body).css('position', 'absolute'); 
    jQuery(".mywidget").appendTo(document.body).css('top', ($(this).offset().top+top_offset).toString() + 'px'); 
    jQuery(".mywidget").appendTo(document.body).css('left', Math.round($(this).offset().left) + 'px'); 
}); 

पिछले 4 jQuery(".mywidget") कॉल हर बार शरीर के लिए विजेट जोड़ रहे हैं।

jQuery("[id='A0.R0.Main Phone Number']").live('mousedown',function(e) { 
    var container = $(this).width(); 
    var width_offset = -50; 
    var top_offset = 25; 
    var width = (container + width_offset).toString(); 
    jQuery(".mywidget").appendTo(document.body).css('width', width + 'px').css('position', 'absolute').css('top', ($(this).offset().top+top_offset).toString() + 'px').css('left', Math.round($(this).offset().left) + 'px'); 
}); 

कौन सा भी एक सीएसएस कॉल करने के लिए कम किया जा सकता:

jQuery("[id='A0.R0.Main Phone Number']").live('mousedown',function(e) { 
    var container = $(this).width(); 
    var width_offset = -50; 
    var top_offset = 25; 
    var width = (container + width_offset).toString(); 
    jQuery(".mywidget").appendTo(document.body).css({ 
     width: width + 'px', 
     position: 'absolute', 
     top: ($(this).offset().top+top_offset).toString() + 'px', 
     left: Math.round($(this).offset().left) + 'px'; 
    }); 
}); 

नोट, इस के बाहर, अपनी पहचान आप वास्तव में केवल प्रत्येक शैली के लिए एक बार में जोड़ने के लिए और बदल सीएसएस चाहते HTML spec के अनुसार, रिक्त स्थान नहीं होना चाहिए। और, यदि आप एक मान्य आईडी है, तो आप इसे इस तरह का चयन करेंगे:

jQuery("#A0.R0.Main_Phone_Number") 
+0

यदि ऐसा करने के लिए वैसे भी है? अगर (jQuery ("# A0.R0.Main_Phone_Number")) फिर (मेरी अन्य jQuery कॉल करें) ... – htmlfarmer

+0

आपका क्या मतलब है "अन्य कॉल"? आप क्या करने की कोशिश कर रहे हैं? –

+0

यदि आप वर्णन करते हैं कि आपका एचटीएमएल क्या कर रहा है तो इससे मदद मिलेगी और आप वास्तव में क्या करना चाहते हैं। –

-4

आप एक नेस्टेड jQuery फोन आप तो वह ऐसा कर सकते हैं करना चाहते हैं तो ...

$(document).ready(function(){ 
    $(document).ready(function(){ 
    // javascript code here... 
    }); 
}); 
+1

यह एक अनुचित उत्तर है। – Jason

+0

@ जेसन क्या आप समझा सकते हैं कि मेरे जैसे अनौपचारिक क्यों – Eoin

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