10 Stimmen

JQuery wählt eine Variable durch Übergabe eines Textstrings mit ihrem Namen aus

Ich möchte einen JQuery-Selektor verwenden, um eine Variable zurückzugeben, indem eine Textzeichenfolge des Variablennamens übergeben wird:

ex.

var test = "xxx";

Ich denke, ich könnte so etwas tun, aber es wird nicht funktionieren:

  alert($("#test"));

Edit: Die Leute sind verwirrt. Betrachten Sie es als eine reflektierende Weise, den Inhalt von var test zu erhalten. Vorzugsweise mit einem JQuery-Selektor, aber ich nehme jeden Weg, den man mit ihm kommen kann

15voto

Christian Punkte 287

Das sollte für Sie funktionieren. Sie müssen die Variable außerhalb der Anführungszeichen wie folgt verwenden. Sie könnten die # mit einer . wenn Sie einen Stil-Selektor im Gegensatz zu einem ID-Selektor verwenden möchten.

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

Wenn das Feld wie folgt lautet <input name="xxx" .../> müssten Sie etwas wie das Folgende verwenden:

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

3voto

FatherStorm Punkte 7075

Ich bin mir nicht sicher, was Ihr Ziel ist, aber ich verwende die folgende Methode häufig, wenn ich eine Sache mit einer anderen interagieren lassen will...

<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>

Ich sage dem Element mit dem rel-Attribut, was das Ziel der Aktion sein wird...

um auf Variablen zuzugreifen, versuchen Sie dies (Fenster ist ein in Javascript eingebautes Array globaler Variablen...)

var i=2;

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

2voto

karim79 Punkte 333786

Was Sie fragen, wird am besten mit JavaScript-Objekten durchgeführt, z. B.:

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

So etwas kann man machen, obwohl ich den Sinn nicht wirklich sehe:

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

<input id="foo"/>

http://jsfiddle.net/J4hC8/

0voto

Ron Harlev Punkte 15563

Was Sie vielleicht brauchen, ist

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

0voto

Leo Jweda Punkte 2463
var test = "#xxx";
alert($(test));

Alternativ können Sie auch verwenden:

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X