使用jQuery+Knockout两次获得相同的值

使用jQuery+Knockout两次获得相同的值,jquery,knockout.js,Jquery,Knockout.js,我在jQuery和KnockoutJS方面遇到了问题。我试着读一个单选按钮的表格,你可以选择你是男性还是女性 profile.gender的值是“m”,所以“checked”这个词可以用。但是在jQuery中,我应该同时得到'm'和'f'的警告,但我得到'm'两次 我有这个HTML: <input type="radio" class="profile gender" name="gender" data-bind="value: 'm', attr: { checked: profile

我在jQuery和KnockoutJS方面遇到了问题。我试着读一个单选按钮的表格,你可以选择你是男性还是女性

profile.gender的值是“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

您必须在警报$'.gender'.val中输入的语句将始终为您提供第一个元素,您需要提供元素索引才能遍历它们

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

您必须在警报$'.gender'.val中输入的语句将始终为您提供第一个元素,您需要提供元素索引才能遍历它们

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

@Adil是正确的,但这可以简化,因为在调用每个元素时,您已经对其中的每个元素进行了引用:

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

@Adil是正确的,但这可以简化,因为在调用每个元素时,您已经对其中的每个元素进行了引用:

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