我遇到了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());
});
答案 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());
});