如何在JQuery中将元素追加到动态字段?

时间:2015-12-19 05:26:46

标签: javascript jquery html append

在我的用例中,我想在动态生成的每次迭代中将元素追加到相应的对象。它附加到所有对象的末尾。这是我的代码,

HTML:

<div class="comment-list-new" style= "max-height: 660px !important;overflow-y: scroll;">
    <h5>Discussion Board</h5>
    <ol class="question_ol" >
        {{  if .ViewData.Questions }}
        {{ range .ViewData.Questions }}
            <li>
                <input type="hidden" id="question_id" class="question_id_val" value="{{.QuestionId}}"/>
                <div class="q-comment">
                    <div class="qanda questiondiv" id="questionarea" name="questionarea">
                        <div>
                            <div id="topic" class="upvote pull-left">
                                <a class="upvote"></a>
                                <span class="count">3</span>
                                <a class="downvote"></a>
                            </div>
                            <div >
                                <div class="qanda-info">
                                    <h6><p id="quest_title">{{.QuestionTitle}}</p></h6>
                                </div>
                                <p id="quest_text">{{.QuestionText}}</p>
                            </div>
                        </div >
                        <div class="qanda-info">
                            <div class="user-info">
                                <img src="/resources/img/team-small-2.png" />
                            </div>
                            <h6>{{.UserId}}</h6>
                            <span class="date alt-font sub">{{.DateCreated}}</span>
                            <a id="answertext" name ="answertext" type="submit" class="link-text answerbutton">Answer</a>
                        </div>
                    </div>
                </div>
            </li><!--end of individual question-->

            {{ if .Answers }}
            <div class="form-input">
                    <label for="answers">{{len .Answers}} Answer(s)</label>
            </div>
                {{ range .Answers }}
                    <ul class="children">
                        <li>
                            <div class="q-comment">
                                <div class="qanda">
                                    <div>
                                        <div id="topic" class="upvote pull-left">
                                            <a class="upvote"></a>
                                            <span class="count">{{.Upvotes}}</span>
                                            <a class="downvote"></a>
                                        </div>
                                        <div >
                                        <p>{{.AnswerText}}</p>
                                        </div>
                                    </div>
                                    <div class="qanda-info">
                                        <div class="user-info">
                                            <img alt="User" src="/resources/img/team-small-4.png" />
                                        </div>
                                        <h6>{{.UserId}}</h6>
                                        <span class="date alt-font sub">{{.DateCreated}}</span>
                                    </div>
                                </div>
                            </div>
                        </li><!--end of individual comment-->
                    </ul>
                {{ end }}
            {{ end }}

         {{ end }}
        {{ end }}

    </ol>
</div><!--end of comments list-->

**和我的JS代码:**

$('.questiondiv').on('click', '.submitanswerbutton', function() {
    console.log("In submit button");
    date = "17 June 2015"
    var howtiId = $('#howti_id').text();
    var question_id = $(this).closest('li').find('.question_id_val').val();
        var answer_text = $('.answertext_val').val();
        console.log(howtiId);
        console.log(question_id);
        console.log(answer_text);
    $.getJSON("/submitanswer?howti_id="+howtiId+"&question_id="+question_id+"&answer="+answer_text, function(data) {
            console.log("answer Response "+data);
            newAnswer = "<ul class='children'><li><div class='q-comment'><div class='qanda'><div><div id='topic' class='upvote pull-left'><a class='upvote'></a><span class='count'>3</span><a class='downvote'></a></div><div><p>"+answer_text+"</p></div></div><div class='qanda-info'><div class='user-info'><img alt='User' src='/resources/img/team-small-4.png' /></div><h6>{{.UserId}}</h6><span class='date alt-font sub'>"+date+"</span></div></div></div></li></ul>"
            $('ol').append(newAnswer);
            //$(this).closest('.comment-list-new').find('.question_ol').append(newAnswer);
        });
    $(this).closest('.answersectiondiv').remove();
});

我正在尝试回答各自的问题。但它附加在最后一个问题上。

有人可以帮我这个吗?

1 个答案:

答案 0 :(得分:0)

首先在questions_ol div下添加一个容器div来包含每个问题及其答案,给它类class_and_answers,确保它在循环中。

然后使用带有$(this)的jquery选择器来到达相对答案列表。代替:     $(&#34; ol&#34;)。追加(... 使用:     $(this).closest(&#39; .question_and_answers&#39;)。追加(...