1
<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のサブセットをターゲットにすることは可能ですか、または特定のクラス内のすべてのクラスを反復処理する他の方法はありますか?

みんなありがとう..

4

1 に答える 1

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);
于 2012-09-06T09:14:18.790 に答える