[英]how can I get the the li specific to a ul if i have more than one ul and all the li have same classname
我希望每個ul
所有li
以這種形式排列 0px、200px、400px 等。具體取決於該特定ul
中li
的數量。 我的代碼以這種方式將它連接起來 0px,200px,400px,600px,800px,從 600px 開始, li
在另一個ul
我希望它也從 0px,200px 開始以這種格式。 我怎樣才能做到這一點?
var slider = document.getElementsByClassName('slider'); var slide = document.getElementsByClassName('slide'); var art = document.getElementsByTagName('article'); var child = [], slideWidth = 200; for (var i = 0; i < art.length; i++) { art[i].addEventListener('mouseover', function(event) { getslide(event) }) } function getslide(event) { for (var i = 0; i < slide.length; i++) { let elem = event.target.getAttribute('data'); if (slide[i].getAttribute('data') != null && slide[i].getAttribute('data') == elem) { console.log(slide[i].style.left = slideWidth * i + 'px); } } }
<article data=0> <button class="btn2">></button> <button class="btn1"> <</button> <h5 class="pricin">N20,000</h5> <ul class="slider"> <li class="slide" data=0> <img src="image-2.jpeg" alt=""> </li> <li class="slide" data=0> <img src="image-4.jpeg" alt=""> </li> <li class="slide" data=0> <img src="summer.jpg" alt=""> </li> </ul> </article> <article data=1> <button class="btn2">></button> <button class="btn1"> <</button> <h5 class="pricin">N20,000</h5> <ul class="slider"> <li class="slide" data=1> <img src="image-1.jpeg" alt=""> </li> <li class="slide" data=1> <img src="image-5.jpeg" alt=""> </li> </ul> </article>
你能編輯 HTML 嗎? 我建議給他們一個唯一的 ID 或給他們另一個類。 元素可以有多個類,因此不僅限於一個。
您也可以嘗試使用父選擇器或子選擇器,但您似乎沒有任何唯一標識符,因此很難做到。
您可以在 ul 上使用不同的 id 屬性並使用
var slide = document.querySelectorAll("#myId > .slide")
您還可以在元素上使用 querySelectorAll。
var slider = document.getElementById("myId")
var slide = slider.querySelectorAll(".slide")
你總是可以通過使用選擇器的組合來制作或多或少的特定內容
不完全確定您要在這里做什么,可能缺少 css 可以彌補差距,但根據我的理解,這是一個解決方案。
var slider = document.getElementsByClassName('slider');
var art = document.getElementsByTagName('article');
var child = [],
slideWidth = 200;
for (var i = 0; i < art.length; i++) {
art[i].addEventListener('mouseover', function(event) {
getslide(event)
})
}
function getslide(event) {
for (var i = 0; i < slider.length; i++) {
var slide = slider[i].getElementsByClassName('slide');
for (var j = 0; j < slide.length; j++) {
let elem = event.target.getAttribute('data');
if (slide[j].getAttribute('data') != null && slide[j].getAttribute('data') == elem) {
console.log(slide[j].style.left = slideWidth * j + 'px');
}
}
}
}
我用了兩個循環。 第一個用於滑塊,第二個用於該特定滑塊內的幻燈片。 這就是為什么我在第一個循環中聲明var slide
原因。 每次滑塊更改時, j
變量將從0
開始。 所以你的像素數將從0
開始。 不是一個非常優雅的解決方案,但它會起作用。 希望有幫助。 快樂編碼:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.