Я работаю над приложением, которое будет представлять опросы пользователю. Разметка выглядит примерно так:
<body>
<div class="question" id="q1">
Question 1
</div>
<div class="question" id="q2">
Question 2
</div>
<!-- etc -->
</body>
Я хочу построить объекты JavaScript из DOM с помощью jQuery, поэтому в конструкторе Survey
я просматриваю набор jQuery, используя метод each()
. Проблема в том, что в функции обратного вызова я не могу получить ссылку на объект Survey
, чтобы добавить каждый объект Question
к массиву Survey.questions
. Как получить ссылку на объект Survey
? Есть ли способ передать дополнительный параметр (например, ссылку на объект Survey
) на функцию обратного вызова?
function Survey() {
this.questions = new Array;
$('.question').each(function(i) { (/* Survey object */).questions.push(new Question(this)); });
}
function Question(element) {
this.element = $(element);
}