#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>
Я его не тестировал, это у меня в голове не укладывается. Но это должно сработать.