Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.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
Jquery 分离图像,然后将其追加到分离的位置_Jquery_Append_Detach - Fatal编程技术网

Jquery 分离图像,然后将其追加到分离的位置

Jquery 分离图像,然后将其追加到分离的位置,jquery,append,detach,Jquery,Append,Detach,我的经验水平- 我正在制作一个自定义滑块,这是我第一次体验jQuery,但我认为我对html、css和jQuery一起做什么有很好的理解,但我仍然有我的noob特性 我的问题-我有17个div标记为这样,我想删除img标签: <div class="slide" id="zero"> <h2>April 1, 2011</h2> <img src="img/1_april12011.png"/><p

我的经验水平- 我正在制作一个自定义滑块,这是我第一次体验jQuery,但我认为我对html、css和jQuery一起做什么有很好的理解,但我仍然有我的noob特性

我的问题-我有17个div标记为这样,我想删除img标签:

      <div class="slide" id="zero">
        <h2>April 1, 2011</h2>
        <img src="img/1_april12011.png"/><p>Lorem Ipsum</p>
      </div>
      <div class="slide" id="one">
        <h2>April 2011</h2>
        <img src="img/2_april2011.png"/> <p>Lorem Ipsum</p>
      </div>
      <div class="slide" id="two">
        <h2>August 2011</h2>
        <img src="img/3_aug2011.png"/><p>Lorem Ipsum</p>
      </div>
我使用var=imageToAttach和attachLocation来跟踪删除的图像以及从何处删除的图像,这样我可以在需要时(当单击另一个图像或左控件和右控件时)再次将其附加到特定的div中,所以如果我可以使--jsfiddle工作,那么我相信我可以做我想做的事情

几个小时的研究和摆弄之后

我想我知道我想做的是,我将使用.hide()和.show(),但我仍然对上面提到的提琴中发生的事情感到好奇,,也就是说,我如何让img重新插入到我单击另一个div时的同一个div中……如果您,善良的stackoverflow用户,不会介意,您还可以告诉我一种更简单的方法来将div分配给某种数组,而不是使用id=“zero”id=“one”等

像这样的

var slides = $('.slide');
var numberOfSlides = slides.length;
var slideArray[] = null; 
我是否可以使用for循环将slides.length的索引分配给数组中的每个点

for( var i=0;i<=numberOfSlides;i++){
   slideArray[i] = ?;
}

for(var i=0;i在这里。我更新了你的小提琴,让你做我认为你最想做的事。不过我不太确定,因为这种行为对我来说很奇怪,我也不知道人们为什么要这样做

以下是相关代码,可压缩为:

$(document).ready(function(){
    var imageToAttach;
    var attachLocation;

    $('.slide').on('click', function(){ 
      if(imageToAttach != null){
        $(imageToAttach).appendTo(attachLocation);
      }

      attachLocation = $(this);
      imageToAttach = $(this).find('img').detach();
   });
});
​
本质上,您是在尝试查找元素“id”时,应该只存储对所单击元素的引用

attachLocation = $(this);
这样appendTo就有了一个元素,而不仅仅是id的值(假设您使用
$(this.attr('id')
)获取了实际的id)

另外,您的示例没有声明变量,也没有将侦听器放在ready调用中


另外请注意,我切换到了而不是-请参见:“从jQuery 1.7开始,.delegate()已被.on()方法取代。”

请使用我更新的新链接重试。我使用的是我碰巧所在的lorem ipsum网站上的一些随机图像。我将它们更改为使用我自己的图像,以防出现一些引用阻止您查看图像的情况。例如,Firefox没有显示远程图像。它现在可以工作了。谢谢!非常感谢您的帮助:)
attachLocation = $(this);