Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   jQuery before() и after() (https://javascript.ru/forum/jquery/17471-jquery-before-i-after.html)

syegorius 20.05.2011 14:37

jQuery before() и after()
 
Доброе время суток. Такая проблема функции before и after добавляют елементы в конец родительского...

<div class="wrapper">
<div class="w"></div>
<div class="a"></div>
<div class="a"></div>
<div class="a"></div>
</div>

Пишу:

$('.w:last').after('<div class="w"></div>') или $('.w:first').before('<div class="w"></div>')

и в обоих случаях получается:

<div class="wrapper">
<div class="w"></div>
<div class="a"></div>
<div class="a"></div>
<div class="a"></div>
<div class="w"></div><!--добавился здесь -->
</div>

подскажите что делать или каким образом можно по другому добавить элементы. Способ:

$('.wrapper:first').html($('.wrapper:first').html( ) + '<div class="w"></div>')

работает, но после javascript не видит элементы внутри '.wrapper'...
Спасибо за ответы!

Возможно причина в том что '<div class="w"></div>' - это строка. Кто-нибудь может подсказать как ее переформатировать в объект, так чтоб это был объект элемента дом?

Nightmare 21.05.2011 02:18

append

syegorius 21.05.2011 18:10

ну причем тут append. В том то и дело, что сейчас

$('.w:last').after('<div class="w"></div>') или $('.w:first').before('<div class="w"></div>')

работают как append! А нужно, что б они работали как указано в документации по jquery

Nightmare 22.05.2011 18:19

insertAfter
insertBefore

micscr 23.05.2011 09:01

after вставляет не в конце родительского, а после указываемого.
Твой пример себе запустил. У меня все ок с
$('.w:last').after('<div class="w"></div>')

Андрей38 30.11.2011 23:31

$('.w').clone().insertAfter('xx')

Андрей38 30.11.2011 23:45

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script src="http://code.jquery.com/jquery-1.5.js" type="text/javascript"></script>
<style type="text/css">
#BOX {	background-color: #FF9;	border: medium dotted #33F;	height:70px;	width:400px;
}
img {	float: left;position: relative;
}
 #boxic {background-color: #9C6;eight: 60px;width: 50px;float: left;
	position: relative;
}
#Can-tFond {	background-color: #0FC;	height: 60px;	width: 49px;
	border: thin solid #C36;	float: left;position: relative;
}
</style>
</head>
<body>
<div id='boxic'>boxic </div>

<script type="text/javascript">
$(document).ready(function(){
	$('img').live('mouseenter',function(){
$(this).fadeTo('fast',0.4).fadeTo('fast',1)
}) })
</script>
<script type="text/javascript">
$(document).ready(function(){
	$('#BUT').live('click',function(){
$('<span> <img  src="http://javascript.ru/forum/image.php?u=8616&dateline=1282216923" /> <div id="Can-tFond">Can-tFond</span> ').insertBefore('#boxic')
})

 })
</script>
<script type="text/javascript">

$('*').live('mouseup',function(){
var g=$(this).height()
alert(''+g+'px_ это высота ,Странности _ почему ведет себя как бы ИТЧ-цикл???' )
	})

</script>
<input id='BUT' name="" type="button" />

</body>

</html>


Здесь работает нормально, но реально у меня возвращает только то ,что находиться в $(<xxxx>).inser... а старых соседей за его пределами ,искать не хочет.
Еще показывает индекс 1 для инсертнуго,хотя в ДОМ он находиться ,кто-знает где .
...Подскажите пожайлуста, в чем может быть дело ?
Подозреваю,что это должно быть нечто
var cardadd=document.createElement('<span class="SPAN-CHacked" ><img class=ChackImg src="Untitled-right.png?2" /><input name="chackInserted" class="Ch_'+numb+'" type="checkbox" value="" checked /> </span>')
cardadd.insertBefore('*[line="zoom-1"][iso^='+numb+']')
....но НЕ работает и так ...
Еще работает так ('<img src="Untitled-right.png?2" />).insertAfter('xx')
cardadd.insertBefore('*[line="zim-1"][iso^='+numb+']')
то есть _по одиночке .
Как реализовать цепочку из (<> <>xxx</> <>xxx</> <>xxx</> </>).insertAfter('xx') ??

Pavel M. 01.12.2011 11:10

Цитата:

Сообщение от syegorius
Доброе время суток. Такая проблема функции before и after добавляют елементы в конец родительского...

<div class="wrapper">
<div class="w"></div>
<div class="a"></div>
<div class="a"></div>
<div class="a"></div>
</div>

Пишу:

$('.w:last').after('<div class="w"></div>')

у меня работает правильно
вставляет как в документации после <div class="w"></div>
пробовал в FF8, jquery последний

ksa 01.12.2011 11:20

Посмотрите на дату сообщения ТС... ;)


Часовой пояс GMT +3, время: 21:41.