2015-06-03 8 views
9

वहाँ कुछ मैं यहाँ नहीं दिखाई दे रहा है .. मैं तत्वों आईडी के साथ एक स्ट्रिंग-चर है:jQuery स्ट्रिंग-चर खाली ऑब्जेक्ट प्रदान

var sf_new_id = "#sf_widget_choice-32:14.86:1:1" 

मैं की तरह एक और तत्व से कि स्ट्रिंग प्राप्त

var anotherid = sf_selectedmethod.attr('id'); 

तब मैं पिछले चार हटा दिया और कहा कि आईडी, अर्थात् पिछले संख्या और '#' के लिए कुछ जानकारी जोड़ने:

var sf_new_id = anotherid.substr(0, anotherid.length-1); // Now without the last char. 
sf_new_id = '#'+sf_new_id+'1'; 
0 इस ('sf_selectedmethod' एक और तत्व है)

और यह ऊपर वर्णित स्ट्रिंग बन जाता है।

और मैं इस तरह jQuery के साथ तत्व का उपयोग करने की कोशिश कर रहा हूँ:

$(sf_new_id).addClass("..."); 

कि आईडी के साथ तत्व मौजूद है, लेकिन कुछ नहीं होता। मैंने तत्व को छिपाने की कोशिश की:

$(sf_new_id).hide(); 

लेकिन अभी भी कुछ भी नहीं होता है।

मैं console.debug में पूरी तत्व डाल, और यह एक खाली वस्तु दिखाता है:

console.debug($(sf_new_id)); 

आउटपुट: ऑब्जेक्ट कंसोल

मैं यहाँ क्या याद आ रही है में []?

संपादित करें: मैं बच-thingy की कोशिश की, और यह काम करने लगता है, लेकिन अब समस्या यह है कि मैं कोलन और इस तरह जब जानकारी चर में है कैसे बच सकते हैं?

+0

अपने कोड है के बाद पृष्ठ लोड होता है निष्पादित किया जाता है $ (document) .ready (function() {... अपने कोड ...}) – Yangguang

+3

आप की तरह अक्षरों से बचने की जरूरत है? ':' और ' । ' आपके स्ट्रिंग चर में। – Prachit

+0

मुझे संदेह है जावास्क्रिप्ट चर # पहले चरित्र के रूप में घोषित किया गया है ?? – shreyansh

उत्तर

7

वैध चयनकर्ता बनाने के लिए आपको अपनी स्ट्रिंग में विशेष वर्णों से बचना होगा।

var sf_new_id = "#sf_widget_choice-32:14.86:1:1"; 

sf_new_id = sf_new_id.replace(/:/g, "\\:") 
        .replace(/\./g, "\\.") 

$(sf_new_id).hide(); 
+0

यश !! यह खूबसूरती से काम करता है! बहुत बहुत धन्यवाद! दूसरों के लिए भी धन्यवाद। मैंने आपको सभी क्रेडिट दिया क्योंकि मूल प्रश्न पर्याप्त स्पष्ट नहीं था। उसके लिए माफ़ करना। – GotBatteries

5

आपको अपने चयनकर्ता में : और . से बचने की आवश्यकता है। इसे आज़माएं:

var sf_new_id = "#sf_widget_choice-32\\:14\\.86\\:1\\:1"; 
9

आप तकनीकी रूप से आईडी/नाम विशेषताओं में कोलन और अवधि का उपयोग कर सकते हैं, लेकिन मैं दोनों से बचने का सुझाव दूंगा।

jQuery जैसी कई जावास्क्रिप्ट पुस्तकालयों में, अवधि और कोलन दोनों का विशेष अर्थ होता है और यदि आप उनका उपयोग सावधानीपूर्वक नहीं कर रहे हैं तो आप समस्याओं में भाग लेंगे। अवधि कक्षा चयनकर्ता हैं और कोलन छद्म चयनकर्ता हैं (उदाहरण के लिए, माउस के ऊपर होने पर तत्व के लिए "होवर")।

"" से बचने की कोशिश करें। और ":" आपकी आईडी विशेषता में या यदि यह संभव नहीं है। नीचे के रूप में जावास्क्रिप्ट में उन्हें बचने का प्रयास करें:

var sf_new_id = "#sf_widget_choice-32\\:14\\.86\\:1\\:1"; 
3

आईडी से मेल खाना चाहिए:

[A-Za-z][-A-Za-z0-9_:.]* 
  1. AZ या az पात्रों के साथ शुरू करना चाहिए
  2. हो सकती है - (हाइफन), _ (अंडरस्कोर) ,: (कोलन) और। (अवधि)

लेकिन किसी से बचना चाहिए: और।बीकोज़:

उदाहरण के लिए, एक आईडी को "ab: c" लेबल किया जा सकता है और स्टाइल शीट में #ab: c के रूप में संदर्भित किया जा सकता है लेकिन साथ ही तत्व के लिए आईडी होने के कारण, इसका अर्थ आईडी "ए", क्लास "बी", छद्म चयनकर्ता "सी"। भ्रम से बचने और उपयोग करने से दूर रहने के लिए सर्वश्रेष्ठ। और: पूरी तरह से।

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