迭代给定类中的所有类

时间:2012-09-06 09:12:10

标签: javascript jquery each

<div class="contain_questions">
    <div class="question">
        <div class="question_text">First question</div>
        <div class="question_mandatory">1</div>

        <div class="options">
            <div class="option"><div class="option_name">a</div><div class="option_value">1</div></div>
            <div class="option"><div class="option_name">b</div><div class="option_value">2</div></div>
            <div class="option"><div class="option_name">c</div><div class="option_value">3</div></div>
        </div>

        <a href="" class="add_another_option">add_another_option</a>
    </div>

    .
    . // many more div.question ...
    .

    <input type="button" value="submit_questions" />
</div>

对于每个问题,如何对外部.each()中的每个div.option使用.each()? 我有外部的.each()工作正常,它遍历所有div.question并将question_text等推送到一个数组中,但我似乎无法在每个问题中定位选项容器,以便为每个问题推送所有选项问题进入阵列。

此外,是否可以使用.each()函数定位DOM的子集,还是有其他方法来迭代给定类中的所有类?

谢谢你们..

1 个答案:

答案 0 :(得分:1)

就像那样简单:

$(".question").each(function() {
    ...
    $(this).find(".option").each(function() {
        ...
    });
});

因此,您的代码可能如下所示:

var questions = [];
$(".question").each(function() {
    var obj = {
        name : $(this).find(".question_text").text(),
        options : []
    };

    $(this).find(".option").each(function() {
        obj.options.push({
            name : $(this).find(".option_name").text(),
            value : $(this).find(".option_value").text()
        });
    });

    questions.push(obj);
});

console.log(questions);