如何使用javaScript进行多选
How to do multiple selection with javaScript
本文关键字:何使用 javaScript 更新时间:2024-05-27
我正在尝试用JavaScript进行多选。但不能工作。我该怎么修?我是按照的方式做的
var expanded = false;
function showCheckboxes() {
var checkboxes = document.getElementById("checkboxes");
if (!expanded) {
checkboxes.style.display = "block";
expanded = true;
} else {
checkboxes.style.display = "none";
expanded = false;
}
}
.multiselect {
width: 200px;
}
.selectBox {
position: relative;
}
.selectBox select {
width: 100%;
font-weight: bold;
}
.overSelect {
position: absolute;
left: 0; right: 0; top: 0; bottom: 0;
}
#checkboxes {
display: none;
border: 1px #dadada solid;
}
#checkboxes label {
display: block;
}
#checkboxes label:hover {
background-color: #1e90ff;
}
<div class="multiselect">
<div class="selectBox" onclick="showCheckboxes()">
<select>
<option>check box1</option>
</select>
<div class="overSelect"></div>
</div>
<div id="checkboxes">
<label for="one"><input type="checkbox" id="one" />First checkbox</label>
</div>
</div>
<div class="multiselect">
<div class="selectBox" onclick="showCheckboxes()">
<select>
<option>check box2</option>
</select>
<div class="overSelect"></div>
</div>
<div id="checkboxes">
<label for="one"><input type="checkbox" id="one" />First checkbox</label>
</div>
</div>
<div class="multiselect">
<div class="selectBox" onclick="showCheckboxes()">
<select>
<option>check box3</option>
</select>
<div class="overSelect"></div>
</div>
<div id="checkboxes">
<label for="one"><input type="checkbox" id="one" />First checkbox</label>
</div>
</div>
多个元素不能有相同的id。这是无效的。然而,当您调用getElementById()
时,将使用1st元素。这就是为什么在您的示例中只有1st元素展开和折叠。
这是一个例子。在这个例子中,我将一个参数传递给showCheckboxes
方法。这样我们就可以选择正确的checkboxes
。我们还必须单独存储3个元素的状态。
https://jsfiddle.net/93894gbs/5/
js
var expanded = [false, false, false];
var checkboxes;
function showCheckboxes(i) {
checkboxes = checkboxes || document.getElementsByClassName("checkboxes");
if (!expanded[i]) {
checkboxes[i].style.display = "block";
expanded[i] = true;
} else {
checkboxes[i].style.display = "none";
expanded[i] = false;
}
}
您还可以在调用处理程序时传递"event"属性,如:
div class="selectBox"onclick="showCheckboxes(event)"
并更改javascript,如:
var expanded = false;
function showCheckboxes(ev) {
console.log("ev", ev);
var checkboxes = ev.currentTarget.parentElement.lastElementChild;
if (!expanded) {
checkboxes.style.display = "block";
expanded = true;
} else {
checkboxes.style.display = "none";
expanded = false;
}
}
相关文章:
- 正在添加'X'按钮,在文本字段旁边使用javascript
- 使用javascript将动态表从一个html页面打印到另一个html页
- 如何使用javascript或html下载PDF格式的填写表单
- 动态地改变“”的URL;添加新项目”;链接使用javascript/jquery
- 如何使用javascript从主svg对象动态创建svg视图框
- 通过单击表单中的按钮,在代码生成中使用javascript生成字母数字代码
- 使用Javascript获取所选选项ID
- 如果文本字段为空,则使用JavaScript应用CSS样式
- 使用javascript从数据库中添加表
- JSON.parse没有'不能使用Javascript
- 使用javascript检查多个输入值,并在1次检查中标记多个输入框
- 可以't使用JavaScript获取width属性
- 如何使用javascript获取嵌套对象中所有子对象的单个属性
- 使用javascript在Flash中加载外部图像
- 使用Javascript创建测验页面
- 在PHP中使用javascript更改页面标题'if'
- 使用javascript函数在页面初始化后加载jquery
- 无法使用javascript检索SPList项
- 使用javascript存储变量的最安全方式
- 使用javascript搜索具有用户输入的数组