0

次のコードがあります

var input = $('#el_id');
wrapper = $(document.createElement('div'));
wrapper.addClass('small');
wrapper.css('width',200);
input.wrap(wrapper);

alert(input.children().length)

子の長さは 0 です。私が欲しいのは:

<div class="small" style="width: 200px;">
     <input type="text" id="el_id" />
</div>

しかし、小さな div を動的に生成したいと考えています。なぜこれが機能しないのか考えていますか?

アップデート

私の問題は別のコード行にあることがわかりました。ラップ後にラッパーを変数に割り当てたいとします。

block = input.wrap("<div class='"+container_class+"' style='width: "+wrap_width+"px;'></div>");

動作しません。意味のある入力を返します。しかし、どうすればラッパーを返すことができますか?

ありがとう!

4

3 に答える 3

2

私はあなたがそれを正しくやっていると信じています。

ラップ関数の結果を変数に保存するだけです。

編集: parent()を取得するようにコードを更新しました:

var wrapped = input.wrap(wrapper).parent();
alert(wrapped.children().length);
于 2009-06-24T03:19:59.457 に答える
0

ドキュメントから、wrap() は DOM 要素または文字列のみを受け入れるようです。jQuery オブジェクトを渡していますが、これは機能しない可能性があります。私はこれを試してみます:

$('#el_id').wrap('<div class="small" style="width: 200px;"></div>');
于 2009-06-24T03:16:06.967 に答える
0

単純。wrap() 関数が期待する dom オブジェクトではなく、jquery オブジェクトでラップしようとしています。

于 2009-06-24T03:20:35.587 に答える