Ich bin ziemlich verwirrt mit dem Verhalten von Arrays von Strings, wenn ich sie durch die jQuery.each()
-Methode Schleife. Anscheinend werden die Strings innerhalb der Callback-Funktion zu jQuery-Objekten. Allerdings kann ich die this.get()
-Methode nicht verwenden, um die ursprüngliche Zeichenfolge zu erhalten. doing triggert eine this.get ist keine Funktion Fehlermeldung. Ich nehme an, der Grund ist, dass es kein DOM-Knoten ist. Ich kann $(this).get()
tun, aber es macht meine Zeichenfolge zu einem Array (von "foo"
zu ["f", "o", "o"]
).Strings im Array sind keine Strings mehr nach jQuery.each()
Wie kann ich es in String umwandeln? Ich muss eine Variable von String
Typ bekommen, weil ich es an andere Funktionen übergebe, die die Werte zwischen ihnen vergleichen.
Ich lege eine in sich geschlossene Testfall (erfordert Firebug-Konsole):
<!DOCTYPE html>
<html>
<head><title></title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript"><!--
$(function(){
var foo = [];
var $foo = $(foo);
foo.push("987");
$foo.push("987");
foo.push("654");
$foo.push("654");
$.each(foo, function(i){
console.log("foo[%d]: object=%o; value=%s; string=%o", i, this, this, $(this).get()); // this.get() does not exist
});
$foo.each(function(i){
console.log("$foo[%d]: object=%o; value=%s; string=%o", i, this, this, $(this).get()); // this.get() does not exist
});
});
//--></script>
</head>
<body>
</body>
</html>
Ich habe gerade das gleiche Problem erfahren, jedoch festgestellt, dass dies wie erwartet im strikten Modus funktioniert. – Joost