Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.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 遍历DOM树jquery_Javascript_Jquery - Fatal编程技术网

Javascript 遍历DOM树jquery

Javascript 遍历DOM树jquery,javascript,jquery,Javascript,Jquery,一个相当简单的遍历,我似乎无法理解 基本上,如果有人点击,而我想更改第一个div中的图像,我该怎么做呢?尝试了一些事情,包括: $(this).closest('.currentImage img') 尝试查找父元素.imagesslider元素,然后查找其子元素.currentImage元素 $('.thumbnails li').click(function(e){ e.preventDefault(); var newImage = $(this).children('i

一个相当简单的遍历,我似乎无法理解

基本上,如果有人点击
  • ,而我想更改第一个div中的图像,我该怎么做呢?尝试了一些事情,包括:

    $(this).closest('.currentImage img')

    尝试查找父元素
    .imagesslider
    元素,然后查找其子元素
    .currentImage
    元素

    $('.thumbnails li').click(function(e){
        e.preventDefault();
        var newImage = $(this).children('img').attr('src');
        var $image = $(this).parents('.imageSlider').find('.currentImage img');
        console.log(newImage);
        $image.fadeOut(500, function() {
            $image.attr('src', newImage);
        }).fadeIn(500);
    });
    

    另一个选项是
    $(this).parent('ul')。同胞('.currentImage')。find('img')

    该选择器不完全正确
    .currentImage
    是当前元素父元素的同级(即
    .thumbnails
    ),因此
    最近的()
    将永远找不到它。

    是的,很简单。;)那么,为什么我做了
    $(this).parent('.imageSlider.currentImage img')
    它不起作用呢?首先,你需要在
    .imageSlider
    .currentImage
    之间留一个空格。没有空格意味着它们是同一个元素,即两个类都是一个元素。其次,
    $(this).parent(选择器)
    查找
    $(this)
    元素的直接父元素,但仅当它与选择器匹配时才返回它。
    $(this)
    的直接父元素是
    元素。第三,
    $(this).parents(selector)
    从直接父元素开始,然后获取该元素的父元素,并以此方式递归,直到找到与选择器匹配的元素,这将永远不会发生,因为
    .currentImage
    不是
  • 元素的父元素。是,抱歉…回家过夜,因为15分钟的时间而忘记接受。$(this).parent().prev().children('img')或simple在变量中引用包装器(图像滑块),以便将其用作根选择器
    $('.thumbnails li').click(function(e){
        e.preventDefault();
        var newImage = $(this).children('img').attr('src');
        var $image = $(this).closest('.currentImage img');
        $image.fadeOut(500, function() {
            $image.attr('src', newImage);
        }).fadeIn(500);
     });
    
    $('.thumbnails li').click(function(e){
        e.preventDefault();
        var newImage = $(this).children('img').attr('src');
        var $image = $(this).parents('.imageSlider').find('.currentImage img');
        console.log(newImage);
        $image.fadeOut(500, function() {
            $image.attr('src', newImage);
        }).fadeIn(500);
    });