1

私はプロジェクトに取り組んでいます.ビューに2つのアンカーがあります(投票機能用),

私は内部にdivを持って<ul>おり、3にはそれぞれ<li>賛成票、投票数(in <h2>)、アンカー反対票のアンカーがあります

任意のアンカーをクリックすると、h2 html に投票数が表示される機能が必要です。機能を実装しましたが、

  • 私はこれを行うことができません、これは私のビューです

    <div class="voting" style="margin-left:20px;">
                                            <ul>
                                                <li class="addvote"><a href="#" class="voteAnswer" answerid="@answer.AnswerID" name="Voted">
                                               Up</a></li>
                                                <li class="votecounter">
                                                    <h2>
                                                        @answer.AnswerLikes.Where(a => a.IsActive == true).Count()</h2>
                                                </li>
                                                <li class="subvote"><a href="#" class="voteAnswer" answerid="@answer.AnswerID" name="Voted">
    Down</a></li>
                                            </ul>
                                        </div>
    

    これが私のJSです

    $(".voteAnswer").click(function (event) {
                var answerid = $(this).attr('answerid');
                var name = $(this).attr('name');
                var id = $(this).attr('id');
                var output = $(this);
    
                    $.ajax({
                        url: ResourceAjaxUrl.VoteUnvoteTheAnswer,
                        type: "POST",
                        data: JSON.stringify({ answerID: answerid }),
                        dataType: "html",
                        contentType: "application/json; charset-utf-8",
                        success: function (Result) {
                            alert("Voted");
                            //  $(output).html("Voted (" + Result + ")");
                            $(output).closest("li").find("h2").html(Result);
                            $(output).attr("name", "Voted");
                        },
                        error: function (msg) {
                            alert("Unable to Vote answer: " + msg);
                        }
                    });
    event.preventDefault();
                });
    

    使用してみ $(output).closest("li").find(".votecounter")ましたが、まだ機能していません

  • 4

    2 に答える 2

    4

    UL は最も近い共通の祖先です。

    試す:

    $(output).closest("UL").find(".votecounter")
    
    于 2012-11-04T08:08:40.323 に答える
    0

    あなたのコードにはいくつかの問題があります。

    ここ

    $(".voteAnswer").click(function (event) {
    
                var id = $(this).attr('id');
    

    に属性はありませid.voteAnswer

    また、 と をどのように区別しますupvotedownvote

    anchor'sliタグをclass確認し、それが upvote または down vote であることを確認する必要があります。

    を選択することもできます.votecounter

    単に

    $(".votecounter").find("h2").html(Result);
    

    また

    $(output).closest("ul").find(".votecounter");
    
    于 2012-11-04T08:23:07.087 に答える