最近在自己做类似人人的SNS 要实现说说的 评论回复功能,遇到了一个小问题,就是点回复时,文本框(Textarea)中自动添加,回复**,这就需要用jquery获取对应的textarea,第一开始的想法是动过 LinkButton( text=评论) 的位置关系来获取textarea,但是 由于是repeater嵌套,所以根据位置关系,prev,next,parent,children来获取,就比较复杂;然后就有了第二种想法,通过textarea的属性值来确定,这就得保证,该属性的唯一性,所以就用了绑定数据的主键,这就实现了...
前台的主要部分代码:
<asp:Repeater ID="rptSign" runat="server" OnItemDataBound="rptSign_ItemDataBound"
OnItemCommand="rptSign_ItemCommand">
<HeaderTemplate>
<ul class="ul1">
</HeaderTemplate>
<ItemTemplate>
<asp:HiddenField ID="hdfSignID" runat="server" Value='<%#Eval("signID") %>' />
<li class="li1">
<div class="divFloatLeft">
<asp:Image ImageUrl='<%#Eval("imageURL") %>' AlternateText='<%#Eval("nickName") %>'
CssClass="image40" runat="server" /></div>
<a href="#"><%#Eval("nickName") %></a> <%#Eval("signContent") %>
</li>
<li class="li1"><span class="span">
<%#Eval("signTime") %> 评论(<%#Eval("commentCount") %>) <asp:LinkButton
ID="lkbtnDel" runat="server" Text="删除" CommandArgument='<%#Eval("signID") %>' CommandName="Delete"></asp:LinkButton></span>
</li>
<div style="clear: both;">
</div>
<li class="li1">
<asp:Repeater ID="rptSignComments" runat="server" OnItemCommand="rptSignComments_ItemCommand">
<HeaderTemplate>
<ul>
<li class="li1"></li>
</HeaderTemplate>
<ItemTemplate>
<li class="li1">
<div class="divFloatLeft">
<asp:Image ID="Image1" ImageUrl='<%#Eval("imageURL") %>' AlternateText='<%#Eval("nickName") %>'
CssClass="image40" runat="server" />
</div>
<a href="#"><%#Eval("nickName") %></a> <%#Eval("commentContent")%>
</li>
<li class="li1"><span class="span">
<%#Eval("commentTime") %> <a href='javascript:jump("<%#Eval("userID") %>","回复<%#Eval("nickName") %>:","<%#Eval("objID") %>")'>回复</a> <asp:LinkButton
ID="lkbtnDel" runat="server" Text="删除" CommandName="Delete" CommandArgument='<%#Eval("commentID") %>'></asp:LinkButton></span>
</li>
<div style="clear: both;">
</div>
</ItemTemplate>
<SeparatorTemplate>
<hr />
</SeparatorTemplate>
<FooterTemplate>
</ul>
</FooterTemplate>
</asp:Repeater>
<br />
</li>
<li>
<div id="weibo" style="text-align: right; margin: 10px;">
<textarea style="width: 500px; scroll-x: hidden; height: 80px;" id="txtComment" runat="server" flag='<%#Eval("signID") %>'
οnkeypress="commentWordCountCheck(this);" οnkeyup="commentWordCountCheck(this);"></textarea>
<div>0/200</div>
<asp:LinkButton
ID="lbntComment" runat="server" Text="评论" CommandName="Comment" CommandArgument='<%#Eval("signID") %>'></asp:LinkButton>
</div>
<br />
</li>
</ItemTemplate>
<SeparatorTemplate>
<hr />
</SeparatorTemplate>
<FooterTemplate>
</ul>
</FooterTemplate>
</asp:Repeater>
js部分:
function jump(userID, nickName,obj) {
document.getElementById('<%=hdUserID.ClientID %>').value = userID;
$(":input[flag="+obj+"]").val(nickName);
// $(obj).parent().parent().next().next().next().next().children().children().val(nickName);
// alert($(obj).parent().parent().next().next().next().next().children().children().val());
location.href = "#select";
}
运行效果: