首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用几个元素包装新的div (Mootools1.2)

用几个元素包装新的div (Mootools1.2)
EN

Stack Overflow用户
提问于 2011-09-03 22:38:27
回答 2查看 904关注 0票数 1

我最近开始在他们的网站上使用Mootools 1.2的工作。我正在为他们的内部CMS系统做一些新的对象,并且遇到了一些问题。

系统为对象发布此代码。

代码语言:javascript
复制
<div class="object_start">Title</div>
<div class="normaltext">Blahahahahaha</div>
<div class="normaltext">More text</div>
<div class="singlebox">Some content</div>
<div class="object_end></div>

我需要用一个div包住它,....通过javascript。

由于这个对象应该能够在站点上出现不止一次,因此我从下面的内容开始

代码语言:javascript
复制
function apply_drop() {
  $$('.object_start').each(make_drop_tab_group_of_tab);
}

window.addEvent('domready', apply_drop);

开始遍历存在带有object_start的元素的每个实例。

基本上,我想遍历object_start中的每个元素,直到它使用object_end类到达div,然后将新的div包含在它周围,但我似乎就是做不到。

谁能给出一个小指针,如何轻松做到这一点?我真的不需要再转换任何东西,只需添加包装器即可。

/Björn

EN

回答 2

Stack Overflow用户

发布于 2011-09-04 10:03:35

MooTools文档是您的朋友。为此,我使用了wraps()grab()

代码语言:javascript
复制
function apply_drop() {
    var beginWrapping = false, wrapper;
    // iterate over all divs
    $$('div').each(function(item){
        // if .object_start, wrap it in a div with class .wrapper
        // and then start wrapping all elements until we hit
        // a div with class .object_end
        if (item.hasClass('object_start')){
            wrapper = new Element('div').addClass('wrapper').wraps(item);
            beginWrapping = true;
        } else if (beginWrapping) {
            wrapper.grab(item);
        }
        if (item.hasClass('object_end')) {
            beginWrapping = false;
        }
    });

}
window.addEvent('domready', apply_drop);
票数 1
EN

Stack Overflow用户

发布于 2011-09-04 23:27:00

在你的域中:

代码语言:javascript
复制
document.getElements("div.object_start").each(function(el) {
    var wrapper = new Element("div", {
        "class": "wrap"
    }), end = false, next;

    while(!end) {
        next = el.getNext(); // siblings
        if (!next || next.hasClass("object_end")) end = true;
        if (next) next.inject(wrapper); // will work if no object_end found gracefully.
    }

    // done finding siblings, now replace the orig div.
    wrapper.wraps(el, "top");
});

http://jsfiddle.net/w4brx/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7293768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档