c# - 无法定位特定 div 以填充来自 jQuery AJAX ASP.NET 的数据

标签 c# javascript jquery asp.net ajax

所以我有以下 Javascript。我将尝试找出为什么我附加的 CommentItem div 中指定的文本没有显示。但我的主要问题是针对 ContainerPh ,它位于启动所有内容的 txtComment 之上...

   $('.txtComment').live("keypress", function (event) {
$_this = $(this);

var Id = $(this).attr("index");
var d = JSON.stringify({ "Value": $(this).val(), "StreamId": Id })
var keycode = (event.keyCode ? event.keyCode : event.which);
if (keycode == '13') {
    event.preventDefault();
    $.ajax({
        type: 'POST',
        url: '../API/Services.asmx/PostComment',
        data: d,
        contentType: 'application/json; charset=utf-8',
        dataType: 'json',
        success: PostOk,
        error: errFunc
    });
    $('.txtComment').each(function () {
        $(this).attr('disabled', 'disabled');
    });
}

});

function PostOk(result, userContext, methodName) {

var CommentsPh = $_this.parent().parent().find(".CommentsPh");
 var CommentItem =
    "<div class='CommentItem'>" +
        "<div id='CommentImgContainer'>" +
        "<img src='' class='CommentImg'  + '.thumb' />"   
        "</div>" +
        "<div id='CommentStory'>" +
            "<a href='' class='BuddyTag small'></a>" +
            "<span class='CommentValue'>" + result.d[1] + "</span>" +
            "<br />" +
            "<div class='spacer'></div>" +
            "<span class='DateTime'>datetime</span>"
            "<span style='float: right; margin-right: 7px; margin-left:8px; line-height:8pt;'>.</span>" +
            "<span class='CommentUp'>sometext</span>" +
            "<span class='CommentLike'></span>" +
        "</div>" +
    "</div>";

    $(CommentsPh).append(CommentItem);

$('.txtComment').each(function () {
    $(this).removeAttr('disabled');
    });
}

这正在填充所有 .CommentsPh,即使我试图在 txtComment 文本框之前获取该注释。我做错了什么?

                                <asp:Button ID="btnDeleteStream" CssClass="DisposeOfStream" OnClick="btnDeleteStream_Click"
                                    runat="server" />
                            </div>
                        </asp:Panel>





                                <div class="CommentsPh">
                                </div>
                                <asp:Button ID="btnDeleteStream" CssClass="DisposeOfStream" OnClick="btnDeleteStream_Click"
                                    runat="server" />
                            </div>
                        </asp:Panel>

                        <asp:Panel ID="CommentTools" CssClass="CommentTools" runat="server">
                            <asp:TextBox ID="txtComment" TextMode="SingleLine" CssClass="txtComment" runat="server"></asp:TextBox>

想法?谢谢。

最佳答案

我们看不到太多标记,因此很难判断 TextBox 上方的两个父级没有多个 .CommensPh div(#find 将与之匹配)。

作为替代方案,是否有任何理由不在所需的 div 标签上放置 id= 属性,使用某种将 TextBox 绑定(bind)到该 div 的约定?我在想类似的事情......

<div id='comments_txtComment'></div>

...有问题的文本框在哪里...

<asp:TextBox ID='txtComment'>

...然后在 PostOK 中执行类似 var CommentsPh = $('comments_'+$_this.attr('id')); 的操作;

关于c# - 无法定位特定 div 以填充来自 jQuery AJAX ASP.NET 的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8104735/

相关文章:

C# 将 int 存储在字节数组中

c# - 表达式树的重写

c# - 从 BackgroundWorker 线程访问 UI 控件

javascript - 在 angularjs 中的函数中获取 $scope 的值

jquery - 使用Raty jquery插件和rails 4.0脚手架形式

c# - 糊涂了,这是poco吗?

javascript - 使用 Angular,我应该在哪里存储常量?

javascript - 使用 HTML/Javascript 在鼠标越过某些选定文本时更改光标类型

javascript - 从数组中的字符串中的特定字符处获取值?

javascript - jquery 将 div 元素可见性检测为 true,即使不可见