我有一组九个单选按钮,当我点击每个单选按钮时,我想要一个不同的类(avatar1,avatar2,avatar3,...)添加到id =" avatar"的div。
<div class="ediar_avatar">
<input type="radio" name="RadioGroup1" class="av1">
<input type="radio" name="RadioGroup1" class="av2">
<input type="radio" name="RadioGroup1" class="av3">
<input type="radio" name="RadioGroup1" class="av4">
<input type="radio" name="RadioGroup1" class="av5">
<input type="radio" name="RadioGroup1" class="av6">
<input type="radio" name="RadioGroup1" class="av7">
<input type="radio" name="RadioGroup1" class="av8">
<input type="radio" name="RadioGroup1" class="av9">
</div>
我试过这个jquery:
jQuery('.av1').click(function(){
if (this.checked) {
$("#avatar").attr('class', '');
$('#avatar').addClass('avatar1')
}
但我必须对每个无线电按钮做同样的事情,这是一个很长的代码。有什么方法可以缩短它,例如循环?
答案 0 :(得分:2)
您可以使用index
:
jQuery('[class^=av').on('change', function () {
if ($(this).is(':checked')) {
$("#avatar").removeAttr('class').addClass('avatar' + ($(this).index() + 1));
}
});
答案 1 :(得分:0)
使用您当前的标记,您可以从点击的无线电类名中获取类名,如
jQuery('.ediar_avatar input:radio').click(function () {
if (this.checked) {
$("#avatar").attr('class', 'avatar1' + this.className.match(/\d+$/)[0]);
}
})
答案 2 :(得分:0)
你可以试试这个
jQuery('.av1').click(function(){
if ($(this).is(":checked")) {
$("#avatar").attr('class', '');
$('#avatar').addClass('avatar1')
}
答案 3 :(得分:0)
您可以在选择器中使用input[name="RadioGroup1"]
并使用.index() + 1
获取输入索引
jQuery('input[name="RadioGroup1"]').click(function(){
if (this.checked) {
$("#avatar").attr('class', '');
$('#avatar').addClass('avatar'+ (($(this).index()) + 1));
}
答案 4 :(得分:0)
使您的HTML像这样
<div class="ediar_avatar">
<input type="radio" name="RadioGroup1[]" class="av1">
<input type="radio" name="RadioGroup1[]" class="av2">
<input type="radio" name="RadioGroup1[]" class="av3">
<input type="radio" name="RadioGroup1[]" class="av4">
<input type="radio" name="RadioGroup1[]" class="av5">
<input type="radio" name="RadioGroup1[]" class="av6">
<input type="radio" name="RadioGroup1[]" class="av7">
<input type="radio" name="RadioGroup1[]" class="av8">
<input type="radio" name="RadioGroup1[]" class="av9">
</div>
我更改了每个name
radio button
你的jQuery喜欢这个
jQuery('.ediar_avatar input:radio').click(function () {
if ($(this).is(':checked')) {
$("#avatar").addClass('avatar' + $(this).index() + 1);
}
})
答案 5 :(得分:0)
试试这个,你可以在使用Jquery
选择后简单地删除和添加类
$(document).ready(function() {
$("input").on("change", function() {
$("div").removeClass();
$("div").addClass($(this).attr("class"));
alert("div class now is:"+$("div").attr("class"));
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="ediar_avatar">
<input type="radio" name="RadioGroup1" class="av1">
<input type="radio" name="RadioGroup1" class="av2">
<input type="radio" name="RadioGroup1" class="av3">
<input type="radio" name="RadioGroup1" class="av4">
<input type="radio" name="RadioGroup1" class="av5">
<input type="radio" name="RadioGroup1" class="av6">
<input type="radio" name="RadioGroup1" class="av7">
<input type="radio" name="RadioGroup1" class="av8">
<input type="radio" name="RadioGroup1" class="av9">
</div>
&#13;
答案 6 :(得分:0)
使用以下jQuery代码: -
jQuery(document).ready(function(){
jQuery("input[type='radio']").click(function(){
if (this.checked) {
currIndex = $(this).index();
currIndex = currIndex+1;
$(this).attr('class', '');
$(this).addClass('avatar'+currIndex)
}
});
});