【发布时间】:2017-09-01 05:47:13
【问题描述】:
我在 php 中使用 foreach 循环从 mysql 表中加载数据。我正在使用从数据库加载的数据 ID 并将其应用于按钮值。
按钮有两种颜色,绿色和白色。按钮代表喜欢 cmets 或帖子的喜欢。
现有的总点赞数从 6 开始(div id="total")
白色按钮
如果按钮 1 的颜色为白色并且您点击它,总喜欢 (6) 将增加 1。如果您再次点击按钮 1,总喜欢 (7) 将减少 1。
如果单击按钮 1、按钮 2 和按钮 3,总喜欢 (6) 会增加 3(每个按钮 1)。如果再次点击按钮 1、按钮 2 和按钮 3,总点赞数(9)将减少 3。
谜题
绿色按钮
我是怎么做到的,当点击一个绿色按钮时,总数(6)减少1,如果再次点击按钮,它应该增加1。与白色按钮不同。
如果单击绿色按钮 3、5 和 6,则总数 (6) 应减少 3。如果再次单击相同的按钮,则总数 (6) 将增加 3。
这是我的代码
var colorcode = "rgb(116, 204, 49)";
var buttonid = str;
var elem = document.getElementById(buttonid);
var theCSSprop = window.getComputedStyle(elem, null).getPropertyValue("background-color");
var initialtotal = parseInt(document.getElementById("total").innerHTML, 10);
var likes = new Array();
function showUser(str) {
////// 1st condition /////
if (theCSSprop == colorcode) {
if (likes[value] == 0 || !likes[value]) {
likes[value] = 1;
} else {
likes[value] = 0;
}
var sum = 0;
for (i = 0; i < likes.length; i++) {
if (likes[i] == 1) {
sum--
}
}
}
////// 2nd condition /////
else {
if (likes[str] == 0 || !likes[str]) {
likes[str] = 1;
} else {
likes[str] = 0;
}
var sum = 0;
for (i = 0; i < likes.length; i++) {
if (likes[i] == 1) {
sum++
}
}
}
var tot = initialtotal + sum;
document.getElementById("total").innerHTML = tot;
}
<div id="total" style="width:100px;padding:50px 0px; background-color:whitesmoke;text-align:center;">6 </div>
<!---------------------------------------------------------------------------------------------------------------------->
<button id="5" value="5" onclick="showUser(this.value)">LIKE </button>
<button id="346" value="346" onclick="showUser(this.value)" style="background-color:rgb(116, 204, 49);">LIKE </button>
<button id="128" value="128" onclick="showUser(this.value)" style="background-color:rgb(116, 204, 49);">LIKE </button>
<button id="687" value="687" onclick="showUser(this.value)">LIKE </button>
<button id="183" value="183" onclick="showUser(this.value)" style="background-color:rgb(116, 204, 49);">LIKE </button>
<button id="555" value="555" onclick="showUser(this.value)">LIKE </button>
<!---------------------------------------------------------------------------------------------------------------------->
【问题讨论】:
-
我在这里没有看到任何问题。
-
我看到你所有的按钮都共享相同的
id... ID 应该是唯一的! -
@Barma 我编辑了帖子并提出了一个问题。我正在尝试使绿色按钮减少总值。
-
抱歉,按钮 id 与按钮的值相同,我现在改一下
-
在设置
str之前在哪里设置var buttonid = str;?
标签: javascript