1

我已经看到很多关于在 CSS 中执行此操作(远非理想),但我正在考虑构建一个 Chrome 扩展,它要求在另一个之前插入一个 div(为了澄清,我的意思是在测试扩展时我需要使用 Chrome 开发工具将 div 拖到另一个上方)。有没有办法在页面加载时使用 Javascript/JQuery(或其他可以通过 Chrome 扩展完成的方式)来执行此操作?

在以前的尝试中,我尝试过使用insertAfter()/insertBefore()并且before()没有运气(尽管我可能会遗漏一些明显的东西),所以我想另一个问题是这些是否需要在 Chrome 扩展中以某种方式使用?

提前感谢您的帮助!

4

2 回答 2

10

是一个小演示。

正在使用的insertBefore代码是这样的:

$("<div>").prop("id","between").insertBefore("#blah");

前两个 jQuery 函数只是创建div元素。如果要移动现有的:

$("#existingDiv").insertBefore("#otherDiv");

这应该是不言自明的。

对于插件,异步加载 jQuery。这样的事情应该做:

(function(){
    var s = document.createElement('script');
    s.src = 'http://code.jquery.com/jquery-1.8.2.min.js';
    document.getElementsByTagName('head')[0].appendChild( s );
})();
于 2012-12-17T01:31:04.687 回答
2

jQuery 有一种非常简单的方法可以将一个节点移到另一个节点之前,您在问题中提到了该方法:

前:

<div id="first"></div> <div id="second"></div>

$("#second").insertBefore("#first");

后:

<div id="second"></div> <div id="first"></div>


就 Chrome 而言,您可能需要进行一些挖掘以查看在您拨打电话时是否已加载 jQuery

于 2012-12-17T01:25:16.897 回答