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

时间:2012-09-27 16:51:09

标签: jquery knockout.js

我遇到了jQuery和KnockoutJS的问题。我正在尝试阅读带有单选按钮的表单,您可以选择是否是男性/女性。

个人资料()。性别价值为'm',因此“已检查”的内容有效。但是在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());
});

2 个答案:

答案 0 :(得分:3)

警告$('.gender').val()中的语句总是会给你第一个元素,你需要给元素索引来完成它们。

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

答案 1 :(得分:1)

@Adil使它正确,但这可以简化,因为当你调用每个元素时,你已经引用了this中的每个元素:

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