Greasemonkey脚本将元素移动到另一个元素?

时间:2012-10-26 01:47:30

标签: javascript html greasemonkey userscripts

我想移动<div>元素。在这种情况下,交换第一个和最后一个div.clearfix。所以这个:

<fieldset>
    <div class="clearfix ">
        <label for="form-title">Title</label>
        <div class="input"></div>
    </div>
    <div class="clearfix "></div>
    <div class="clearfix ">
        <label>Verification</label>
        <div dir="ltr">
            recaptcha
        </div>
    </div>
</fieldset>

会变成这样:

<fieldset>
    <div class="clearfix ">
        <label>Verification</label>
        <div dir="ltr">
             recaptcha
        </div>
    </div>
    <div class="clearfix "></div>
    <div class="clearfix ">
        <label for="form-title">Title</label>
        <div class="input"></div>
    </div>
</fieldset>

我已经搜索了但是我所有的一切都在移动(¿屏幕?)的位置,而不是我想要的。 如何交换<div> s?

1 个答案:

答案 0 :(得分:4)

要交换第一个和最后一个div.clearfix,给定HTML,请使用 querySelectorinsertBeforeappendChild函数。

这是完整的Greasemonkey脚本

// ==UserScript==
// @name     _Swap first and last div.clearfix
// @include  http://YOUR_SERVER.COM/YOUR_PATH/*
// @grant    none
// ==/UserScript==

var container    = document.querySelector ("fieldset");
var firstTargDiv = container.querySelector ("fieldset > div.clearfix:first-child");
var lastTargDiv  = container.querySelector ("fieldset > div.clearfix:last-child");

//-- Swap last to first.
container.insertBefore (lastTargDiv, firstTargDiv);

//-- Move old first to last.
container.appendChild (firstTargDiv);