jQuery包装div

时间:2012-06-11 15:05:07

标签: javascript jquery html css

我需要的是将HTML包装在当前div周围,这是我到目前为止所得到的:

HTML:

<input type="text" data-placeholder="username" />

需要呈现为:

<div class="placeholding-input">
  <input type="text" data-placeholder="username" />
  <label>Username</label>
</div>

到目前为止我得到了什么:

$.each($('input[type="text"], input[type="password"], textarea'), function(){
    var input = $(this);
    var container = $('<div />').addclass('placeholding-input');
    input.wrap(container);
    var label = $('<label />').html(input.data('placeholder')).appendTo(container);
});

但由于某种原因,这不起作用,我不知道为什么。

感谢您的帮助:)

5 个答案:

答案 0 :(得分:3)

var container = $('<div />').addclass('placeholding-input');

要:

var container = $('<div />').addClass('placeholding-input');
//                              ^--------------------- upperCase

完整代码:

$('input[type="text"], input[type="password"], textarea').each(function() {
    var input = $(this);
    var container = $('<div>').addClass('placeholding-input');
    var label = $('<label>').html(input.data('placeholder'));
    input.wrap(container).after(label);
});​

DEMO

答案 1 :(得分:2)

尝试如下,

$(function() {
    $.each($('input[type="text"], input[type="password"], textarea'), function() {    
        var input = $(this);
        var container = $('<div />').addClass('placeholding-input');
        var label = $('<label />').html(input.data('placeholder'));
        input.wrap(container).after(label);
    });
});

DEMO: http://jsfiddle.net/skram/CsGUv/

答案 2 :(得分:1)

var input = $(this).wrap((container = $('<div />').addClass('placeholding-input')));
input.after((label = $('<label />').html(input.data('placeholder'))));

完成,感谢您的帮助:)

答案 3 :(得分:1)

$.each($('input[type="text"], input[type="password"], textarea'), function(){
    var input = $(this);
    var container = $('<div />').addClass('placeholding-input'); // not addclass
    var label = $('<label />').html(input.data('placeholder'));
    input.wrap(container).after(label);
});

<强> DEMO

答案 4 :(得分:1)

addclass中的语法错误外,在包装输入之前将标签附加到div。

http://jsfiddle.net/Yb9QV/

$.each($('input[type="text"], input[type="password"], textarea'),
       function(){
            var input = $(this);
            var container = $('<div />').addClass('placeholding-input');

            var label = $('<label />')
                .html(input.data('placeholder')).appendTo(container);

            input.wrap(container);
});​