我正在开发一个向用户展示调查结果的应用程序。标记看起来像这样:

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

10-12 12:30