Я довольно смущен поведением массивов строк, когда я зацикливаю их с помощью метода jQuery.each()
. Очевидно, строки становятся объектами jQuery внутри функции обратного вызова. Однако я не могу использовать метод this.get()
для получения исходной строки; при этом this.get не является сообщением об ошибке функции. Я полагаю, причина в том, что это не DOM-узел. Я могу сделать $(this).get()
, но моя строка становится массивом (от "foo"
до ["f", "o", "o"]
).
Как я могу привести его обратно к строке? Мне нужно получить переменную типа String
, потому что я передаю ее другим функциям, которые сравнивают значения между ними.
Я прилагаю автономный контрольный пример (требуется консоль Firebug):
<!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>