let get1,get2=document.getElementById(list[i]);document.getElementById(list2[i]);
时间: 2023-08-11 18:03:50 浏览: 47
这段代码似乎有一些问题。在 JavaScript 中,`getElementById` 方法只能接收一个参数,即要获取元素的 id。如果你想获取多个元素,可以使用 `querySelectorAll` 方法。以下是修正后的代码示例:
```javascript
let get1 = document.getElementById(list[i]);
let get2 = document.getElementById(list2[i]);
```
请注意,上述代码仅获取了两个元素,如果你想获取更多的元素,你需要根据实际情况进行修改。
相关问题
var list=[]; var list2=[]; for(var i=1;i<7;i++){ var items="l"+i; var item2="rs"+i; list.push(items); list2.push(item2); } console.log(list); for(var i=0;i<6;i++){ let get=document.getElementById(list[i]); get.addEventListener("click",function(){ get.style.width="90%"; get.style.height="8vh"; let get2=document.getElementById(list2[list.indexOf(get)]); get2.style.zIndex="15"; }); }
您的代码看起来基本上是正确的,但是在最后一部分,获取 `list2` 中对应元素的方式有一点错误。在 `getElementById()` 方法中,应该传递一个字符串作为参数,而不是一个元素。因此,您可以修改代码如下:
```javascript
var list = [];
var list2 = [];
for (var i = 1; i < 7; i++) {
var items = "l" + i;
var item2 = "rs" + i;
list.push(items);
list2.push(item2);
}
console.log(list);
for (var i = 0; i < 6; i++) {
let get = document.getElementById(list[i]);
get.addEventListener("click", function() {
get.style.width = "90%";
get.style.height = "8vh";
let get2 = document.getElementById(list2[i]); // 修改这里
get2.style.zIndex = "15";
});
}
```
在上述代码中,我们使用 `getElementById()` 方法传递了 `list2[i]`,这样就能正确地获取到 `list2` 中对应的元素。请注意修改的地方。
希望这能帮到您!如果还有其他问题,请随时提问。
for (let i = 0; i < 6; i++) { let get1 = document.getElementById(list1[i]); let get2 = document.getElementById(list2[i]); get1.addEventListener('click', function() { for (let j = 0; j < list1.length; j++) { document.getElementById(list1[j]).style.width = "100%"; document.getElementById(list1[j]).style.height = "10vh"; let rsShow="rs"+(j+1); document.getElementById(rsShow).style.zIndex="5"; } get1.style.width = "90%"; get1.style.height = "8vh"; let rsShow="rs"+(i+1); document.getElementById(rsShow).style.zIndex="15"; }); }此时添加了当左部li点击时,右边对应的被隐藏的div的z-index调至15从而使其显现,但是添加了和这个功能相关的代码后出现了问题,例如左边点击li时li不会缩小
在你提供的代码中,问题可能是由于点击事件的冒泡导致的。当你在点击 `get1` 元素时,点击事件会冒泡到 `document.getElementById(list1[j])` 这些元素上,导致它们的样式也被修改。为了解决这个问题,你可以在事件监听器中使用 `event.stopPropagation()` 来停止事件冒泡。
以下是修复后的代码示例:
```javascript
for (let i = 0; i < 6; i++) {
let get1 = document.getElementById(list1[i]);
let get2 = document.getElementById(list2[i]);
get1.addEventListener('click', function(event) {
event.stopPropagation();
for (let j = 0; j < list1.length; j++) {
document.getElementById(list1[j]).style.width = "100%";
document.getElementById(list1[j]).style.height = "10vh";
let rsShow = "rs" + (j + 1);
document.getElementById(rsShow).style.zIndex = "5";
}
get1.style.width = "90%";
get1.style.height = "8vh";
let rsShow = "rs" + (i + 1);
document.getElementById(rsShow).style.zIndex = "15";
});
}
```
在修复后的代码中,我们在事件监听器中添加了 `event.stopPropagation()` 来停止事件冒泡。这样,在点击 `get1` 元素时,点击事件不会继续冒泡到其他元素上。这样就可以确保只有点击的元素会被修改样式,其他元素不受影响。
请尝试使用修复后的代码,并确保 HTML 中的元素 id 和数组中的对应元素一致,以便正确绑定事件和修改样式。