我在转发器中有这个:
<div class="vote-wrapper">
<asp:hyperlink runat="server" CssClass="s dislike-button" ID="CommentVoteDown" />
<div class="vote-total-bad">
23
</div>
<asp:hyperlink runat="server" CssClass="s like-button" ID="CommentVoteUp" />
<div class="clear"></div>
</div>
这是重复的(显然!)。由于我的项目设置,我没有生成任何唯一的ID,并且自己管理它,原因是它使得在外部JS文件中调用DOM元素的引用变得更加容易。
ID是重复的,都是CommentVoteDown
和CommentVoteUp
。我想做的是将它们理解为:
CommentVoteUp124
CommentVoteDown124
后面的数字代表与之关联的评论的ID。
我尝试着:
UV.Attributes["ID"] += ThisComment.ID;
和
UV.Attributes.Add("ID", "CommentVoteUp" + ThisComment.ID);
但这些只是为HTML元素添加了第二个键。我如何命名它们以便我可以在Jquery中引用它们?
答案 0 :(得分:2)
这不会起作用吗?
UV.ID += ThisComment.ID;
除非您正在进行回发,否则您不必使用asp.net服务器控件,并且使用干净简单的html可能会更好:
<% Comment comment = Container.DataItem as Comment %>
<div class="vote-wrapper">
<a class="s dislike-button" ID="CommentVoteDown<%=comment.ID %>" />
<div class="vote-total-bad">
23
</div>
<a class="s like-button" ID="CommentVoteUp<%=comment.ID %>" />
<div class="clear"></div>
</div>
只使用类并使用jQuery
从包装容器中找到id<% Comment comment = Container.DataItem as Comment %>
<div id="CommentVoteUp<%=comment.ID %>" class="vote-wrapper">
<a class="s dislike-button" />
<div class="vote-total-bad">
23
</div>
<a class="s like-button" />
<div class="clear"></div>
</div>
然后使用jQuery,您可以使用以下内容从投票上/下<a>
标记的范围中找到ID:
$(".like-button").click(function(){
var id = $(this).closest(".vote-wrapper").attr("id");
});
$(".dislike-button").click(function(){
var id = $(this).closest(".vote-wrapper").attr("id");
});
答案 1 :(得分:2)
你不能做像
这样的事情<asp:hyperlink runat="server" CssClass="s dislike-button"
ID='<%# "CommentVoteDown" + Eval("ID") %>' />
答案 2 :(得分:1)
您可以尝试将其添加到元素的cssclass中吗?这可能会使它变得容易多了。
CommentVoteUp.Attributes [“class”] =“[在此处添加您的班级名称]”;