【问题标题】:Greasemonkey script to move an element into another element?Greasemonkey 脚本将一个元素移动到另一个元素中?
【发布时间】:2012-10-26 01:47:30
【问题描述】:

我想移动<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>

我已经搜索过,但我得到的只是移动(¿screen?)位置,而不是我想要的。 如何交换那些&lt;div&gt;s?

【问题讨论】:

  • 所以你想交换第一个和最后一个div.clearfix,还是别的什么?
  • 是的,我想交换最后一个 clearfix 和第一个 clearfix,你能帮帮我吗?

标签: javascript html greasemonkey userscripts


【解决方案1】:

要交换第一个和最后一个 div.clearfixs,给定 HTML,使用 querySelector、insertBefore 和 appendChild 函数。

这是一个完整的 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);

【讨论】:

  • 那是因为那个小提琴与问题中的代码不匹配!请参阅jsfiddle.net/EbXcs以匹配新的更改 HTML。还请在问题中提供准确、准确的详细信息。对于用户脚本问题,最好使用未更改的目标页面 HTML。
猜你喜欢
  • 2010-11-19
  • 1970-01-01
  • 1970-01-01
  • 2015-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-20
相关资源
最近更新 更多