2011-11-11 20 views
1

私はWebアプリケーション用にJqueryを使用しています。数字のアップダウンボックスを作成しています。このために、入力<input type="text">を定義済みのdivに置き換えます。.html()empty empty返す

オリジナルの入力ボックスのhtmlを取得したいのですが、スタイルなどを持っている可能性がありますので、.replaceWithのバージョンも追加したいと思っています。


現在のコード<input type="text">
新しいコード

<div> 
    <input type="text"> 
    <div> 
     <!-- Other Stuff --> 
    </div> 
</div> 

私は親要素を作る側面に沿って入力コントロールを再生成する必要が見ることができるようになっています。私が現在行っていることは、すべてを再生成し、.replaceWith()メソッドを使ってすべてを貼り付けることです。

すべてのアイデア?

+0

使用しているJQueryコードを投稿できますか?何が起こっているのか把握しやすくなります。 –

答えて

3

私はあなたが何をしようとしているかは完全にはわかりませんが、inputの周りにdivという親をラップし、その後にdivを追加したいようです。その場合は、あなたはこのような何かを行うことができます:それはDOMに滞在するよう

$("input").wrap("<div></div>").after("<div></div>"); 

このように、あなたは、input交換する必要はありません。 wrapは選択された要素の周りに引数を囲み、afterは選択された要素の後に内容を挿入します。

ここにはworking exampleがあります。タイプinput

+0

これは私が探しているものですが、入力ボックスにボタンを追加したいのです。 $( "#myInput")。addExtraStuff();そのクラスはボタンの入力に追加された別のdivでdivを囲みます – TheMonkeyMan

1

要素は本当に HTMLが含まれていないが、むしろ、inputタグがその親コン​​テナ(この場合はdiv)内に含まれるHTMLになります。それで、あなたはそれを専用の内側のコンテナに置き、それを取り外して交換することを検討するかもしれません。

+0

OPは内容のように 'input'のHTMLを意味するのではなく、要素自体を参照するHTMLと思われます。 "それはスタイルなどが追加されている可能性があります" –

+0

@JamesAllardice私は_contents_のいずれかを意味するわけではありません。私は、コンテナからのHTML「」を取得することを意味します。私が言っていることは、 'input'で' html() 'を呼び出すことで' 'が得られないということです。それをそのコンテナで呼び出す必要があります。 –

+0

申し訳ありませんが、あなたの答えを読んで、ええ、私はあなたが意味するものを参照してください。 –

0

おそらくあなたは

があなたの入力を与えるか、IDをwhateever、その後

$('input#yourid').replaceWith('Insert your desired html'); 

好き間違ったセレクタを使用しているリファレンスJQuery API

0

<input />要素は、それがするので、コンテナではありませんHTML値を持たない。ボックスに入力したテキストの後ろにいる場合は、代わりに.val()メソッドを使用してください。

+0

OPは内容のように 'input'のHTMLを意味するのではなく、要素自体を参照するHTMLを意味していると思います。" –

+0

@James Allardice Fair十分に、ただの場合に言及する価値があるように見えた。 –

1

jQueryの.html()は、内容がなくアトリビュートのみを持っているため<input>要素で使用すると空を返します。

事は、私はそれがなどのスタイルを持っていることとして、元の入力ボックスのHTMLを取得したいです追加

あなたは、元の入力ボックスのstyleclass属性を取得し、その後にそれらを適用することができます生成された<div>要素、このような何か:

$("someselectorforyournewdiv").addClass($("input").attr("class")); 
// and/or 
$("someselectorforyournewdiv").attr("style", $("input").attr("style")); 

(。明らかに合うようにセレクタを調整する)

しかし、あなたの生成された要素が素敵な「アップダウンボックス」を作るために、独自のスタイルを持っていないのだろうか?入力から元のスタイルを適用した場合でも、色やそのような形に影響を与えないスタイルを選択しない限り、あまりうまく機能しない可能性があります。