Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果我有多个ul,并且所有的li都有相同的类名,那么如何获得特定于ul的li_Javascript_Html_Css - Fatal编程技术网

Javascript 如果我有多个ul,并且所有的li都有相同的类名,那么如何获得特定于ul的li

Javascript 如果我有多个ul,并且所有的li都有相同的类名,那么如何获得特定于ul的li,javascript,html,css,Javascript,Html,Css,我希望每个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('slid

我希望每个
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=[],
滑动宽度=200;
对于(变量i=0;i

>

你能编辑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 slider=document.getElementsByClassName('slider');
var art=document.getElementsByTagName('article');
var child=[],
滑动宽度=200;
对于(变量i=0;i

我用了两个循环。第一个用于滑块,第二个用于特定滑块内的幻灯片。这就是为什么我在第一个循环中声明了
var slide
。每次滑块更改时,
j
变量将从
0
开始。因此,您的像素计数将从
0
开始。这不是一个非常优雅的解决方案,但它会起作用。希望有帮助。快乐编码:)

我无法理解您到底想做什么。另外,请您提供初步想法,这些列表需要做些什么。我认为有机会有更好的方法来处理您的问题。@Rado这是我的想法,我正在尝试为两个ul创建一个图像滑块,因此我需要将每个ul中的li以0px、200px、400px的形式排列在左边的直线上。。。关于特定ul中li的数量。每个ul都是一个图像滑块,因此它们需要看起来相似,每次添加新ul时,我都试图避免硬编码。为了您的努力,我会立即更新css