一个Var,多个createElement

时间:2013-07-31 00:04:41

标签: javascript jquery append createelement

我正在从js创建一个html结构。

var e = document;

        // HTML Tree
        $this.append(
            $(e.createElement('div')).addClass('wood-bottom'), 
            $(e.createElement('div')).addClass('jalendar-wood')
                .append(
                    $(e.createElement('div')).addClass('jalendar-pages')
                        .append(
                            $(e.createElement('div')).addClass('pages-bottom'),
                            $(e.createElement('div')).addClass('header'),
                            $(e.createElement('div')).addClass('total-bar'),
                            $(e.createElement('div')).addClass('days')
                )
            )
        );

并且有很多createElement('div')个陈述。

这种方法有更好的解决方案吗? 如果我定义var e = document.createElement('div'),它就不会像我想要的那样工作。

2 个答案:

答案 0 :(得分:3)

自定义功能怎么样?

var div = function(klass){return $(document.createElement('div')).addClass(klass)};

    // HTML Tree
    $this.append(
        div('wood-bottom'), 
        div('jalendar-wood')
            .append(
                div('jalendar-pages')
                    .append(
                        div('pages-bottom'),
                        div('header'),
                        div('total-bar'),
                        div('days')
            )
        )
    );

答案 1 :(得分:1)

您可以使用jQuery clone():

var e = document;
var $d = $(e.createElement('div'));

$this.append(
    $d.clone().addClass('wood-bottom'),
    $d.clone().addClass('jalendar-wood')
        .append(
            $d.clone().addClass('jalendar-pages')
            [...]