1

私が必要とするのは、現在の div を HTML でラップすることです。

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);
});

しかし、それは何らかの理由で機能していません。その理由はわかりません。

手伝ってくれてありがとう :)

4

5 に答える 5

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);
});​

デモ

于 2012-06-11T15:09:15.687 に答える
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);
    });
});

デモ: http://jsfiddle.net/skram/CsGUv/

于 2012-06-11T15:12:59.920 に答える
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);
});

デモ

于 2012-06-11T15:11:40.223 に答える
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);
});​
于 2012-06-11T15:38:44.970 に答える
1
var input = $(this).wrap((container = $('<div />').addClass('placeholding-input')));
input.after((label = $('<label />').html(input.data('placeholder'))));

完了、助けてくれてありがとう:)

于 2012-06-11T15:10:28.303 に答える