页面右侧有4个按钮,左侧有4个div标签,右侧点击第2个按钮,左侧隐藏最后一个标签,右侧点击第3个按钮,左侧隐藏后面2个标签,右侧点击第4个按钮,左侧隐藏后面3个标签,用循环的方式写一个方法
时间: 2024-03-09 21:51:19 浏览: 109
好的,根据您的要求,我可以为您提供以下代码实现:
```html
<!DOCTYPE html>
<html>
<head>
<title>按钮与标签的循环操作</title>
<style type="text/css">
.container {
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
height: 100vh;
}
.btn {
padding: 10px;
background-color: #ccc;
border: none;
cursor: pointer;
}
.btn:hover {
background-color: #aaa;
}
.btn:focus {
outline: none;
}
.tags {
width: 25%;
padding: 20px;
background-color: #eee;
border: 1px solid #aaa;
}
</style>
</head>
<body>
<div class="container">
<div class="tags">标签1</div>
<div class="tags">标签2</div>
<div class="tags">标签3</div>
<div class="tags">标签4</div>
<button class="btn" id="btn1">按钮1</button>
<button class="btn" id="btn2">按钮2</button>
<button class="btn" id="btn3">按钮3</button>
<button class="btn" id="btn4">按钮4</button>
</div>
<script type="text/javascript">
// 获取按钮和标签元素
var btns = document.querySelectorAll('.btn');
var tags = document.querySelectorAll('.tags');
// 给每个按钮添加点击事件
for (var i = 0; i < btns.length; i++) {
btns[i].addEventListener('click', function() {
// 获取当前点击的按钮的索引
var index = getIndex(btns, this);
// 根据按钮索引隐藏对应的标签
if (index === 1) {
hideTags(tags, tags.length - 1);
} else if (index === 2) {
hideTags(tags, tags.length - 2);
} else if (index === 3) {
hideTags(tags, tags.length - 3);
} else {
hideTags(tags, tags.length);
}
});
}
// 返回元素在数组中的索引
function getIndex(arr, item) {
for (var i = 0; i < arr.length; i++) {
if (arr[i] === item) {
return i;
}
}
return -1;
}
// 隐藏标签
function hideTags(arr, end) {
for (var i = arr.length - 1; i >= end; i--) {
arr[i].style.display = 'none';
}
}
</script>
</body>
</html>
```
这段代码实现了您的要求:页面右侧有4个按钮,左侧有4个div标签,右侧点击第2个按钮,左侧隐藏最后一个标签,右侧点击第3个按钮,左侧隐藏后面2个标签,右侧点击第4个按钮,左侧隐藏后面3个标签。同时,代码中使用了循环的方式来实现对标签的操作。
阅读全文