我正在开发一个向用户展示调查结果的应用程序。标记看起来像这样:
<body>
<div class="question" id="q1">
Question 1
</div>
<div class="question" id="q2">
Question 2
</div>
<!-- etc -->
</body>
我想使用jQuery从DOM构造JavaScript对象,因此在
Survey
构造函数中,我使用each()
方法遍历jQuery集。问题是在回调函数中,我无法获取对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);
}
最佳答案
在遍历问题之前,您应该能够为调查创建引用。
function Survey() {
this.questions = new Array();
var survey = this;
$('.question').each(function(i) {
survey.questions.push(new Question(this));
});
}
function Question(element) {
this.element = $(element);
}
var survey = new Survey();
$.each(survey.questions, function() {
$("ul").append("<li>" + this.element.text() + "</li>");
});
jsfiddle的工作示例
关于javascript - 将其他参数传递给jQuery each()回调,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5033861/