2012-10-26 150 views
3

我想移动<div>个元素。在这种情况下,交换第一个和最后一个div.clearfix。所以这个:Greasemonkey脚本将元素移动到另一个元素中?

<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>

+0

所以,你希望交换的第一个和最后'div.clearfix',还是其他什么东西? –

+0

是的,我想交换最后一个clearfix和第一个clearfix,你能帮我吗? – GeekToL

回答

4

要交换的第一个和最后div.clearfix S,因为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); 
+1

+1:我不知道像'querySelector'这样的本地选择器函数存在... – Laoujin

+0

它不能在这个元素上工作http://jsfiddle.net/fauzi/jKAYV/1/ – GeekToL

+0

这是因为那个小提琴**不匹配来自问题的代码!**请参阅http://jsfiddle.net/EbXcs/以获取与新的** ** HTML匹配的内容。还请在问题中包含确切,准确的详细信息。对于用户脚本问题,未改变的目标页面HTML是最好的。 –

相关问题