insertBefore - 交换两个div

时间:2014-05-30 12:30:33

标签: javascript jquery html wordpress

如果您查看我的网站link to website,您会找到内容的ID(#content)和侧边栏的一个ID(#sidebar)。 (它位于“#wrapper> #main> .avada-row> #content / #sidebar”)

我试图切换订单/地点,所以#sidebar在#content之前。我试过这段代码:

<script type="text/javascript">//<![CDATA[ 
    $(function(){
        $('#sidebar').each(function () {
            $(this).insertBefore($(this).prev('#content'));
        });
    });//]]>  
</script>

这是一个JSFiddle示例(它在JSFiddle中工作但在我的网站上没有): JSFiddle

我真的希望有人可以帮助我!

请注意!: 这行javascript在JSFiddle中也有效,但在我的网站上没有:

$('#sidebar').insertBefore($('#content'));

我想没有必要使用每个功能?

抱歉 - 我忘了说我对javascript编程一无所知。我只是尽力而为,我猜:/

最好的问候

我不能评论我自己的问题,所以我会在这里做:

Karl-André - 是的,我知道错误“Uncaught TypeError:undefined不是函数”但我不知道如何修复它。

Arjun - 我也试过了,但$正在重写,因此无效:/

Zessx - 你能帮我找出最重要的内容吗?

代码:

jQuery('#sidebar').each(function () {
    jQuery(this).insertBefore(jQuery(this).prev('#content'));
});

当我把它插入头部时,它不起作用。

非常感谢你!我真的很感激!!!!!!!!!!!!

2 个答案:

答案 0 :(得分:0)

有些东西覆盖了jQuery $

> $
  undefined
> jQuery
  function (a,b){return new n.fn.init(a,b)}

如果您通过此脚本更改脚本,则会看到它有效:

jQuery('#sidebar').each(function () {
    jQuery(this).insertBefore(jQuery(this).prev('#content'));
});

现在,我们需要定义 覆盖$的内容。

作为一种解决方法,您仍然可以在<head>as mentioned in jQuery doc中使用此代码(搜索&#34;别名jQuery命名空间&#34;)

jQuery(function($) {
    $('#sidebar').each(function () {
        $(this).insertBefore($(this).prev('#content'));
    });
});

答案 1 :(得分:0)

如果您只想添加所选 div 上方的内容,请使用
$( '#侧边栏')的insertBefore( '#内容');

-Thanks。