2

我在使用 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

然后用这个 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 回答