Добавление элемента из этого

#javascript #jquery #html

#javascript #jquery #HTML

Вопрос:

У меня возникли проблемы с тем, чтобы заставить приведенный ниже код работать. В принципе, я хотел переместить элемент, добавив его в body при наведении курсора мыши. что не так с моим кодом?

Спасибо

 <div class="wrp">
<p>this is a wrap</p>
<p><img src="myimg.jpg" /></p>
</div>
<div class="wrp">
<p>this is a wrap2</p>
<p><img src="myimg.jpg" /></p>
</div>
<div class="wrp">
<p>this is a wrap3</p>
<p><img src="myimg.jpg" /></p>
</div>

<script type="text/javascript">
$(".wrp").hover(function(){ 
$("img", this).appendTo("body");
});
</script>
  

ожидаемый результат:

 <html>
<head/>
<body>
...
<img src="myimg.jpg" />
</body>
</html>
  

Комментарии:

1. Он делает именно это. Вот файл jsfiddle, в котором изображения, конечно, разбиты, но вы все равно можете видеть, что он делает то, что вы хотите.

2. Я думаю, это потому, что вы перемещаете this который .wrp так же, как и изображение, поэтому вы, вероятно, получаете изображения, перемещенные в тело, а также изображения, попробуйте $(this).find('img').appendTo('body')

3. @Val нет, это не то, что $('img', this) означает — это то же самое, что $(this).find('img')

4. Делает то, что вы хотите: jsfiddle.net/YPmM7/1

5. хорошо, я думаю, я узнал здесь больше, чем @marvzz lol 🙂

Ответ №1:

Было бы удобно, если бы вы показали нам результат, который действительно произошел. Но это не главное…

Попробуйте вместо этого выполнить следующее:

 <script type="text/javascript">
$('.wrp > img').hover(function(){
$(this).appendTo('body');
});
</script>
  

Я его не тестировал, это у меня в голове не укладывается. Но это должно сработать.