【发布时间】:2020-10-30 12:50:18
【问题描述】:
我正在创建一个函数,允许用户使用 Javascript 选择和取消选择多个产品,问题是它只显示一个复选框而不是每个产品都有其复选框。如果我有 20 个产品,它会显示 1 个复选框第一个产品,我该如何解决这个问题?
刀片文件
<span><a class="Select-Deselect" href="">Select</a></span>
@foreach($products as $product)
<div id="checkBox1" style=" display:none; position:absolute;">
<h1>hello</h1>
</div>
@endforeach
Javascript
<script>
/* Select deselect */
$(".Select-Deselect").click(function(e) {
if ($(this).html() == "Select") {
document.getElementById("checkBox1").style.display="block";
$(this).html('Deselect');
}
else {
$(this).html('Select');
document.getElementById("checkBox1").style.display="none";
}
return false;
});
</script>
【问题讨论】:
-
您的页面上有多个带有
id="checkBox"的元素。id属性必须是唯一的。也许改用一个类 -
对不起,我没听懂,你能解释一下吗? @kerbh0lz
-
在您的循环中,您正在创建多个
<div id="checkBox">。您的文档中只能有 一个 元素/div 和id="checkBox"。id属性必须都是唯一的,例如<div id="checkBox1">、<div id="checkBox2">等。这就是为什么document.getElementById("checkBox")只获取这些元素中的第一个。 developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/id -
我尝试更改并只在循环中放置一个 div,但仍然无法正常工作? @kerbh0lz
-
在循环中放置多少个 div 并不重要,重要的是当您查看文档的源代码时没有重复的
ids。您能否更新您的问题以显示新代码?
标签: javascript laravel laravel-5