2009-03-10 12 views
0

Ich versuche, etwas "wie" das zu erreichen. Ich möchte den Text, der in einigen JS-Variablen gespeichert ist, basierend auf dem in einem Kombinationsfeld ausgewählten Wert in das Dokument einfügen. Wie referenziere ich JS-Variablen basierend auf dem ausgewählten Wert eines Combos?Hinzufügen von Text aus JS var bei Änderungsereignis mit jquery

<select id="clickMe"> 
    <option value="a">a</a> 
    <option value="b">b</a> 
    <option value="c">c</a> 
</select> 

<span id="attachHere"></span> 

<script> 

var a = "something about a"; 
var b = "something about b"; 
var c = "something about c"; 

$(document).ready(function() { 
    $("#clickMe").change(function() { 
     $("#attachHere").text($("#clickMe").val()); 
    }); 
}); 


</script> 

Antwort

4

Warum nicht mit so etwas wie, dass statt?

<script> 
<!-- 

var values = { 
    'a' : "something about a", 
    'b' : "something about b", 
    'c' : "something about c", 
}; 

$(document).ready(function() { 
    $("#clickMe").change(function() { 
     $("#attachHere").text(values[$("#clickMe").val()]); 
    }); 
}); 

//--> 
</script> 

Sie steuern Ihre Werteliste und können einfach Werte hinzufügen und entfernen.

3

Es wäre besser, wenn Sie Arrays verwendet Objekte.

Angenommen, Sie nicht Arrays verwenden wollen, ich glaube, Sie eval verwenden können:

$(document).ready(function() { 
    $("#clickMe").change(function() { 
     var tmp; 
     eval('tmp = ' + $("#clickMe").val()); 
     $("#attachHere").text(tmp); 
    }); 
}); 
+0

Ich würde die Arrays auch empfehlen. Aber nett mit dem eval(). – lpfavreau

+0

Ja, cool. Das eval() funktionierte, aber ich muss lpfavreau antworten –

2

Versuchen Sie, die Werte in einen Hash-Wert zu setzen, der von der Auswahl codiert wurde, und dann basierend auf dem ausgewählten Wert zu extrahieren.

var choices = {}; 
choices['a'] = 'something about a'; 
choices['b'] = 'something about b'; 
choices['c'] = 'something about c'; 

$(document).ready(function() { 
    $("#clickMe").change(function() { 
     $("#attachHere").text(choices[$(this).val()]); 
    }); 
}); 
Verwandte Themen