2012-09-27 51 views
2

我遇到了jQuery和KnockoutJS的問題。我試圖閱讀一個單選按鈕的表單,你可以選擇,如果你是男性/女性。jQuery + Knockout獲取相同的值兩次

profile()。性別值爲'm',因此'checked'的作用。但在jQuery中,我應該同時提醒'm'和'f',但我會'm'兩次。

我有這樣的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()); 
}); 

回答

3

你必須在警報$('.gender').val()總會給你第一個元素,你需要給聲明元素的索引要通過它們。

$('.profile').each(function(i) { 
    var self = this; 
    alert($('.gender').eq(i).val()); 
}); 
+0

當然,謝謝主席先生! – Gaui

1

@Adil有它正確的,但是這個可以當你調用每個被簡化,因爲你已經在this每個元素的引用:

$('.profile.gender').each(function() { 
    alert($(this).val()); 
});