$("input[type=radio]").change(function(){
alert(this.val());
});
これはなぜ機能しませんか? 私は、ラジオボタンが選択されるたびにページがその値を警告することを望んでいます。Jquery val()が機能しません。
$("input[type=radio]").change(function(){
alert(this.val());
});
これはなぜ機能しませんか? 私は、ラジオボタンが選択されるたびにページがその値を警告することを望んでいます。Jquery val()が機能しません。
私はあなたがこれを行うために必要と考えている:@Eonasdanは、すでに述べたように
が$("input[type=radio]").change(function(){
alert($(this).val());
});
、あなたが$(this).val()
を使用する必要があります。
この理由は、this
がプレーンDOM要素を指し、.val()
がjQueryオブジェクトを必要とするためです。
ところで、あなたは属性セレクタに属性値を引用符で囲む必要があります。$("input[type='radio']")
+1は '属性='値 'セレクタを引用する必要があります。 –
ドキュメントでは「必須」と表示されていますが、引用符の必要条件はスペースが含まれている属性値とjQuery 1.4.4+その前にバージョンはうまく動作します(ほとんどの場合)。それによると、私は**常に*引用*を含む*常に*をお勧めします。 –
引用符は、従来のコードや古いプラグインを壊すことを避けるために、スペースのない場合にのみオプションです。だからちょうど引用符なしで英数字の文字列をPHPで書くことができるように(はい、本当に! "文字列として扱う定数"を投げます)、それはあなたがすべきことではありません。 – ThiefMaster
あなたがに「jQuerify」this
オブジェクト必要があります。
よりもむしろthis.val()
それは$(this).val()
代わりにこれを試してください:
$("input[type=radio]").change(function(){
alert($(this).val());
});
.val()メソッドを使用するには、this
をjQueryオブジェクトにラップする必要があります。
jQueryでは、そのAPIに渡す関数this
をセレクタに一致するDOM要素として提供します。しかし、this
はjQueryオブジェクトではなく、実際にはDOM要素のプレーンです。 this
でjQueryメソッドを呼び出す場合は、this
をjQueryにラップする必要があります。$(this)
$("input[type=radio]").change(function(){
alert($(this).val());
});
ラッパーを何度も再作成しないように複数回使用する場合は、キャッシュすることを忘れないでください。
$("input[type=radio]").change(function(){
var $this = $(this);
$this.addClass('omgitchanged');
alert($this.val());
});
間違いはありますか?これが実行されると、DOMは準備ができていますか? HTMLを使ってページ全体を見る必要があります。 –