2

jQueryとKnockoutJSに問題があります。男性か女性かを選択できるラジオボタン付きのフォームを読み込もうとしています。

profile()。genderの値は「m」であるため、「チェック済み」のものが機能します。しかし、jQueryでは、「m」と「f」の両方のアラートを取得する必要がありますが、「m」は2回取得します。

私はこのHTMLを持っています:

<input type="radio" class="profile gender" name="gender" data-bind="value: 'm', attr: { checked: profile().gender=='m' }" /> Male
<input type="radio" class="profile gender" name="gender" data-bind="value: 'f', attr: { checked: profile().gender=='f' }" /> Female

次に、次のjQueryコードでそれを読みます。

$('.profile').each(function() {
    var self = this;
    alert($('.gender').val());
});
4

2 に答える 2

3

あなたが警戒しなければならないステートメント$('.gender').val()は常にあなたに最初の要素を与えるでしょう、あなたはそれらを通過するために要素のインデックスを与える必要があります。

$('.profile').each(function(i) {
    var self = this;
    alert($('.gender').eq(i).val());
});
于 2012-09-27T16:52:14.250 に答える
1

@Adilは正しいですが、それぞれthisを呼び出すときに各要素への参照がすでにあるため、これは単純化できます。

$('.profile.gender').each(function() {
    alert($(this).val());
});
于 2012-09-27T19:31:45.760 に答える