Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.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 在图像后查找关闭锚定标记_Javascript_Jquery_Html_Css_Dom - Fatal编程技术网

Javascript 在图像后查找关闭锚定标记

Javascript 在图像后查找关闭锚定标记,javascript,jquery,html,css,dom,Javascript,Jquery,Html,Css,Dom,我想移动一个div到一个结束锚标签之后的位置。我得到的只是图像类名。如何找到包装图像的结束锚标记 <a href="#"><img class="cat-image" src="http://placekitten.com/200/300" title="Funky roots" /></a> JS: var listItems=$(“.testList li”); listItems.each(函数(idx,li){ if($(li).fin

我想移动一个div到一个结束锚标签之后的位置。我得到的只是图像类名。如何找到包装图像的结束锚标记

<a href="#"><img class="cat-image" src="http://placekitten.com/200/300" title="Funky roots" /></a>
  • JS:

    var listItems=$(“.testList li”);
    listItems.each(函数(idx,li){
    if($(li).find('.cat image').length){
    log('listItemContent image==>',$('pre').find('cat image'));
    /*$(li).find('??').append($(li).find('.moveMe'))*/
    }
    log($('.testList').html());
    });
    

    尝试在这种情况下使用

    试着在这个上下文中使用


    您可以按如下方式执行此操作:

    如果您愿意,可以将其简化为一行:


    您可以按如下方式执行此操作:

    如果您愿意,可以将其简化为一行:


    您可以使用最近('a')移动哪个
    div
    ?还是你想创造一个新的?那么问题是什么?一般来说,您可以通过基本的jQuery或DOM操作知识来完成此任务。@cookiemonster此网站旨在帮助人们提高“基本知识”-从OP的小提琴来看,他已经对jQuery有了基本的了解,但可能没有更好的点,我想这就是为什么他会问一个问题。小提琴中有一个尝试,让他休息一下。你可以使用最近的('a')移动
    div
    ?还是你想创造一个新的?那么问题是什么?一般来说,您可以通过基本的jQuery或DOM操作知识来完成此任务。@cookiemonster此网站旨在帮助人们提高“基本知识”-从OP的小提琴来看,他已经对jQuery有了基本的了解,但可能没有更好的观点,我想这就是为什么他会问一个问题。小提琴中有一个尝试,给他一个break@NewHavenGill很高兴能帮上忙@纽哈文我很乐意帮助你。。!很抱歉问这个问题,但是在循环中声明变量是一种好的做法吗?@RajaprabhuAravindasamy它不是循环。这是一个匿名函数。所以不,我想说这里没有问题。
    each()
    显式地在选择器返回的元素上循环;是的,这是一个循环。虽然这不一定是个问题,但它确实会带来“轻微”的低效率/性能损失。如果只使用缓存选择器/jQuery对象一次,则无需初始化变量。@DavidThomas它被使用了两次。这就是我使用变量的原因。很抱歉问这个问题,但是在循环中声明变量是一种好的做法吗?@RajaprabhuAravindasamy它不是循环。这是一个匿名函数。所以不,我想说这里没有问题。
    each()
    显式地在选择器返回的元素上循环;是的,这是一个循环。虽然这不一定是个问题,但它确实会带来“轻微”的低效率/性能损失。如果只使用缓存选择器/jQuery对象一次,则无需初始化变量。@DavidThomas它被使用了两次。这就是我使用变量的原因。
    <ul class='testList'>
        <li class="listItem-0">
            <div class="moveMe"></div> <pre>
            <div class="wrapper">
                <a href="#"><img class="cat-image" src="http://placekitten.com/200/300" title="Funky roots" /></a><!-- moveMe div here -->
            </div>
            <div class="summary"></div>
            </pre>
    
        </li>
        <li class="listItem-1">
            <div class="moveMe"></div>  <pre>
            <div class="wrapper">
                <div></div>
            </div>
            <div class="summary"></div>
            </pre>
    
        </li>
        <li class="listItem-2">
            <div class="moveMe"></div>  <pre>
            <div class="wrapper">
                <a href="#"><img class="cat-image" src="http://placekitten.com/300/400" title="bigger cat pic" /></a>
            </div>
            <div class="summary"></div>
            </pre>
    
        </li>
    </ul>
    
    var listItems = $(".testList li");
    
    listItems.each(function (idx, li) {
        if ($(li).find('.cat-image').length) {
            console.log('listItemContent image==>', $('pre').find('.cat-image'));  
            /*$(li).find('???? </a>  ????').append($(li).find('.moveMe'));*/
        }
        console.log($('.testList').html());
    });
    
    var listItems = $(".testList li");
    var cache = null;
    
    listItems.each(function (idx, li) {
        cache = $(li).find('.cat-image');
        if (cache.length) {
          cache.parent().after($(li).find('.moveMe'));
        }
    });
    
    var listItems = $(".testList li");
    listItems.each(function (idx, li) {
        var jli = $(li);
        jli.find(".cat-image")
           .closest("a")
           .after(jli.find(".moveMe"));
    });
    
    var listItems = $(".testList li");
    listItems.each(function (idx, li) {
        $(li).find(".cat-image").closest("a").after($(li).find(".moveMe"));
    });