在我的div class="box"
内,有标题H1
和logo div
。 HTML如下所示,因此徽标图像位于标题文本下方。现在,我想使用jquery(使用三元或if else)将H1
和logo div
的位置移动到位于logo div
下方的标题,反之亦然。
HTML:
<div id="block">
<div id="box">
<h1><a>HEADING TEXT</a></h1>
<div class="logo">
<a>
<img src="images/logo.png">" alt="" width="150" height="150"/>
</a>
</div>
</div>
</div>
CSS:
#box {
width: 230px;
height: 500px;
}
#logo {
width: 230px;
height: auto;
}
#logo img {
width: 150px height:150px;
}
我如何改变立场
答案 0 :(得分:3)
查看演示
var $box = $('#box').click(function(){
var $this = $(this), $h1 = $box.find('h1'), $div = $box.find('.logo');
if($h1.index() < $div.index()){
$h1.detach().insertAfter($div)
} else {
$h1.detach().insertBefore($div)
}
})
演示:Fiddle
答案 1 :(得分:2)
您可以使用jquery的.detach()和.insertAfter()方法。
$("#box h1:first").detach().insertAfter(".logo");
答案 2 :(得分:1)
由于在框中我们只有文本和徽标,我们可以切换而不仅仅使用前置功能:
var logo = $('#box .logo'),
h1 = $('#box h1'),
box = $('#box'),
isLogo = false,
selector = function(){
isLogo = !isLogo;
return isLogo? logo : h1;
};
setInterval(function(){
var toSwitch = selector();
toSwitch.fadeOut('slow', function(){
toSwitch.prependTo(box).fadeIn('slow');
})
//or just
//selector().prependTo(box);
}, 3000)