2011-04-12 11 views
8

का एक पाठ स्ट्रिंग पारित करके एक चर का चयन मैं एक JQuery चयनकर्ता का उपयोग करने के लिए चर नाम का एक पाठ स्ट्रिंग पारित करके एक चर वापस जाने के लिए करना चाहते हैं:JQuery इसके नाम

पूर्व।

var test = "xxx"; 

मैं सोच रहा हूँ मैं कुछ इस तरह कर सकता है, लेकिन यह काम नहीं करेगा:

alert($("#test")); 

संपादित करें: लोगों को भ्रमित कर रहे हैं। Var परीक्षण की सामग्री प्राप्त करने के लिए इसे एक प्रतिबिंबित तरीके के रूप में सोचें। एक JQuery चयनकर्ता के साथ अधिमानतः, लेकिन मैं .. किसी भी तरह से एक यह साथ आने कर सकते हैं ले लेंगे

+3

और 'चेतावनी (परीक्षण)' क्योंकि काम नहीं करेगा ...? – mVChr

+0

क्योंकि मैं चर नाम का एक स्ट्रिंग का उपयोग करना चाहता हूं। संभव नहीं? – KevinDeus

+0

मुझे लगता है कि आप चयनकर्ता बनाने के लिए उस स्ट्रिंग का उपयोग करना चाहते हैं, सही? –

उत्तर

11

यह आप के लिए काम करना चाहिए है। आपको इस तरह स्ट्रिंग कोट्स के बाहर चर का उपयोग करना होगा। . के साथ # को प्रतिस्थापित कर सकते हैं यदि आप शैली चयनकर्ता बनाम आईडी चयनकर्ता का उपयोग करना चाहते हैं।

var test = "xxx"; 
alert($("#" + test)); 

क्षेत्र <input name="xxx" .../> की तरह कुछ है, तो आप निम्न की तरह कुछ का उपयोग करना होगा:

var test = "xxx"; 
alert($("[name=" + test + "]")); 
0

हो सकता है कि आपको क्या चाहिए

alert($("#" + test)); 
+3

वह उसे परीक्षण द्वारा आयोजित स्ट्रिंग की आईडी के साथ डीओएम तत्व प्राप्त करेगा, लेकिन परीक्षण द्वारा आयोजित स्ट्रिंग के बराबर चर नहीं। वह echo $$ test – FatherStorm

0
var test = "#xxx"; 
alert($(test)); 

वैकल्पिक रूप से, आप का उपयोग कर सकते हैं:

var test = "xxx"; 
alert($("#" + test)); 
0
नहीं

यकीन , लेकिन हो सकता है कि आप eval फ़ंक्शन ढूंढ रहे हों।

+0

करीब एक वैरिएबल-वैरिएबल करने की कोशिश कर रहा है, लेकिन बिल्कुल नहीं। – KevinDeus

2

सबसे अच्छा, JavaScript ऑब्जेक्ट के साथ किया क्या आप पूछ रहे हैं है जैसे:

var obj = { test: "xxx" }; 
for(key in obj) { 
    alert(key); // "test" 
    alert(obj.key); // "xxx" 
} 

आप कुछ इस तरह कर सकते हैं, हालांकि मैं वास्तव में बात नहीं दिख रहा है:

var obj = { foo: "xxx" }; 
for(key in obj) { 
    alert($("#" + key).length); // 1 
} 

<input id="foo"/> 

http://jsfiddle.net/J4hC8/

+0

सहायक। हाँ यह एक वैकल्पिक है, लेकिन मैं इसे बिना किसी सरणी – KevinDeus

2

सुनिश्चित नहीं है कि आपका अंतिम लक्ष्य क्या है, लेकिन जब मैं किसी अन्य चीज़ के साथ बातचीत करने की आवश्यकता होती हूं तो मैं निम्न विधि का उपयोग करता हूं ...

<a href='whatever.html' rel='#targetElem' class='loadable'> 
<script> 
$(document).ready(function(){ 
    $('.loadable').live('click',function(){ //when a element with the class of loadable is clicked 
    $($(this).attr('rel')).load($(this).attr('href')); //load the contents of it's href URL into the element specified in it's rel attribute 
    return(false); // stop processing the link; 
}); 
}); 

</script> 

मैं क्या कार्रवाई का लक्ष्य rel विशेषता का उपयोग किया जाएगा तत्व बताओ ...

चर पर प्राप्त करने की कोशिश इस (खिड़की एक जावास्क्रिप्ट में निर्मित वैश्विक चर की सरणी है ...)

var i=2; 

var test='i'; 
document.write('got ' + window[test]); 
+0

के बिना करने की कोशिश कर रहा हूं, मैंने इसे प्राप्त करने के लिए अपना संक्षिप्त सुझाव बदल दिया है। बहुत बढ़िया! चेतावनी (विंडो [ "परीक्षण"]); उपरोक्त मेरे उदाहरण के लिए काम करता है (आईई 8, एफएफ, क्रोम) – KevinDeus

+0

+1: विंडो सरणी का अभिनव उपयोग। लेकिन कहीं भी सिफारिश नहीं है :) – naveen

0

मुझे पता है कि यह पुराना है, लेकिन यहां समाधान है। जैसा कि igor मिला द्वारा कहा गया है, आपको eval() का उपयोग करना चाहिए।

var test = "xxx"; 
 
alert(eval("test"));

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