2012-01-18 2 views
0

http://api.jquery.com/remove/のremove-functionのドキュメントを読んだところ、以下のコードが動作するという印象でした。jQuery.remove()が期待どおりに動作しない(?)

私はこのような入力要素がある場合:

<input id="hiddenRatings" name="languageRatings" type="hidden" value="{5, 3, 2, , , {5, 3, 4, , , {5, 3, 2}}}"/> 

を私は

$().ready(function() { 
    $('#hiddenRatings').remove(); 
}); 

を行うことによって、単純にそれを削除することができるだろうと思った。しかし何も起こらない、私の入力要素が残っています。私は間違って何をしていますか?

EDIT:クラップス......動作します!私はChromeツールを使用していましたが、[Elements]タブではなく[Scripts]タブでDOMを調べていました。あなたが$(document).ready(を行う必要があり、DOMが明らかに変更されたときに更新をdoesn'tスクリプト]タブ...多分

+1

を助け

希望は私のために働くようだ:http://jsfiddle.net/9EsSg/、正直に言うと奇妙です。 '$()'は空のセットを返すべきです。詳細は、['jQuery()'ドキュメント](http://api.jquery.com/jQuery/)を参照してください。その代わりにコールバック関数を '$()'に渡してください。それはうまくいくかもしれません。 –

+1

私の最初のコメントに関して、それは結局奇妙ではありません。 'ready'はどの要素が選択されていても必ず' readyList'にコールバックを追加します。 [ソースコードを見る](https://github.com/jquery/jquery/blob/1.7.1/src/core.js#L253)。 '$(document).ready(...)'や '$(...)'を使うのはもっと一般的です。 –

+0

本当に変わったことは、最初に 'DOMContentLoaded'コールバックを追加するためにインスタンス化されたオブジェクトを必要とするjQueryです – Esailija

答えて

1

$(document).ready(function() { 
    $('#hiddenRatings').remove(); 
}); 

$(document)を使用すると、すべてのHTML要素がDOMに読み込まれるまで待機します。 $()が実際に何かをしているのかどうかは分かりません。あなたの関数は、その要素がDOMにロードされる前に実行されます(あるいは、$()が実際に動作するかどうかわからないので) 。

+1

docs:* "jQuery 1.4では、引数なしで' jQuery() 'メソッドを呼び出すと空のjQueryセット(' .length'プロパティが0)を返します。以前のバージョンのjQueryでは、 'document'ノードを含んでいます。*、しかし驚いたことに、それはまだ1.7で動作するようです、私のコメントを参照してください。 –

+0

奇妙な...私は考えていませんが、実際にはどこでも$()準備ができていて、すべてのコードが動作しています(これはJSの100行です)。 – Daniel

+0

@Daniel:あなたの質問に私の2番目のコメントを見てください。これがうまくいかなければ、あなたの問題は他の場所にあります。 –

1

...

そして、それは私の作品DEMOここ

私の推測では、あなたが意味しているされて
関連する問題