[英]Why are buttons being multiplied every time one is clicked? (javascript ejs)
It was supposed to be one red button or one blue button but every click on a blue button add 1 button on each line.它应该是一个红色按钮或一个蓝色按钮,但每次单击蓝色按钮都会在每行添加一个按钮。
And every click on a red button deletes 1 button on each line.并且每次点击红色按钮都会删除每行上的 1 个按钮。
image:图片:
<% for (var i=0; i < loadPosts.length; i++) { %>
<tr>
<td><%= loadPosts[i].name %></td>
<td><%= loadPosts[i].price %></td>
<td><%= loadPosts[i].id %></td>
<td>
<% for ( var j=0; j < homeProduct.length; j++ ) { %>
<% if ( homeProduct[j].ProductId === loadPosts[i].id ) { %>
<button class="btn btn-danger"><a style="color: white;
cursor: pointer; text-decoration: none;"
href="/deleteFromHomePage/<%=
loadPosts[i]._id%>">DeleteFromHomePage</a></button>
<% } else { %>
<button class="btn btn-primary"><a style="color: white;
cursor: pointer; text-decoration: none;"
href="/addToHomePage/<%=
loadPosts[i]._id%>">AddToHomePage</a></button>
<% } %>
<% } %>
</td>
<td>
<button class="btn btn-danger"><a style="color: white;
cursor:pointer; text-decoration: none;" href="/delete/<%=
loadPosts[i]._id%>">Delete</a></button>
</td>
</tr>
<% } %>
Your nested loop creates a button for each product.您的嵌套循环为每个产品创建一个按钮。 If the productID is the same as the post ID, it's a delete button, otherwise it's an add button.如果productID与post ID相同,则为删除按钮,否则为添加按钮。
I think what you actually want to do is check whether the post ID is in the homeProduct
array.我认为您真正想要做的是检查帖子 ID 是否在homeProduct
数组中。 If it is, you want a delete button;如果是,您需要一个删除按钮; if not, you want an add button.如果没有,您需要一个添加按钮。 You can use the some()
function to tell if there's a match.您可以使用some()
函数来判断是否有匹配项。
<% for (var i=0; i < loadPosts.length; i++) { %>
<tr>
<td><%= loadPosts[i].name %></td>
<td><%= loadPosts[i].price %></td>
<td><%= loadPosts[i].id %></td>
<td>
<% if (homeProduct.some(p => p.ProductId = loadPosts[i].id)) { %>
<button class="btn btn-danger"><a style="color: white;
cursor: pointer; text-decoration: none;"
href="/deleteFromHomePage/<%=
loadPosts[i]._id%>">DeleteFromHomePage</a></button>
<% } else { %>
<button class="btn btn-primary"><a style="color: white;
cursor: pointer; text-decoration: none;"
href="/addToHomePage/<%=
loadPosts[i]._id%>">AddToHomePage</a></button>
<% } %>
</td>
<td>
<button class="btn btn-danger"><a style="color: white;
cursor:pointer; text-decoration: none;" href="/delete/<%=
loadPosts[i]._id%>">Delete</a></button>
</td>
</tr>
<% } %>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.