很抱歉这个标题可能听起来像一个菜鸟问题,但我真的不知道任何有点javascript。
让我解释一下。我试图建立一个声誉系统。所以我上下按钮,中间有数字。因此,当用户按下按钮时,它将禁用该按钮,并从该号码中添加或删除1。
现在更改数字是基本的,我可以找到任何地方,但永远告诉我使用id。但我不能使用id因为它不会是唯一的,因为我使用这个代码多次,我不知道多少次。 这是按钮的代码
<div class="row">
<button type="button" class="btn-xs btn-link reputation-buttons" onclick="location.href='@Url.Action("MessageReputationUp", "Forum", new { groupId = Model.GroupId, threadId = Model.ThreadId, messageId = Model.Id })';return false;">
<span class="glyphicon glyphicon-arrow-up"></span>
</button>
<div> <text id="ReputationCount" style="padding-left:2px;"> @Model.Reputation.ToString()</text></div>
<button type="button" class="btn-xs btn-link reputation-buttons" onclick="location.href='@Url.Action("MessageReputationDown", "Forum", new { groupId = Model.GroupId, threadId = Model.ThreadId, messageId = Model.Id })';return false;">
<span class="glyphicon glyphicon-arrow-down"></span>
</button>
</div>
所以当我按下时,id =信誉计数器的文本需要改变。现在它变得有点复杂了。按下按钮后需要禁用按钮,但按下按钮需要重新按下。但是如果我能看到一个解决这个问题的基本例子,那我就可以搞清楚了。
答案 0 :(得分:1)
您可以使用javascript classes。类有点像id,但对于N个元素。
在upvoting / downvoting时,获取内部div的当前文本,将其转换为整数,添加或减去1并使用更新的值更改文本。您可以启用/禁用按钮或任何您想要执行的操作。
$(document).on('click', '.votes_manager', function() {
var elem = $(this).parent().children('.displayer');
var value = parseInt(elem.text());
if ($(this).hasClass('increase')) {
++value;
}
else {
--value;
}
elem.text(value);
});
选中JSFiddle。
PS:此解决方案使用jQuery。