2012-10-26 153 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是最好的。 –

相關問題