我有这样的HTML:
<form>
<div class="row">
<input type="radio" class="radio">
<label>Text</label>
<input type="radio" class="radio">
<label>Type</label>
</div>
</form>
现在我需要在每个<input type="radio">
之后立即对每个标签应用一个类。
我正在使用这样的jquery:
if($('input').hasClass('radio')){
$(this).next().addClass('radio-url');
}
我试图在无线电标签后立即向每个<label>
添加课程'radio-url'。
我在这做了什么错误?
答案 0 :(得分:2)
您可以使用.siblings()
$('input[type="radio"]').siblings('label').addClass('radio-url');
或者
$('input[type="radio"]').next('label').addClass('radio-url');
答案 1 :(得分:1)
答案 2 :(得分:1)
您可以使用next()函数
$("input:radio").next('label').addClass("radio-url");`
答案 3 :(得分:1)
这个答案没有直接回答你的问题!
我认为您的标签应具有 for 属性,以便标签与单选按钮相关联。这允许用户:
<强> HTML 强>
<div class="row">
<input type="radio" class="radio" id="text"></input>
<label for="text">Text</label>
<input type="radio" class="radio" id="type"></input>
<label for="type">Type</label>
</div>
<强> JQuery的强>
使用无线电元素的ID搜索标签。
$('input[type="radio"]').each(function(){
var radioId = $(this).attr("id");
$("label[for='" + radioId + "']").addClass('radio-url');
});
答案 4 :(得分:0)
您需要遍历所有单选按钮:
$('input[type="radio"]').each(function(){
$(this).next().addClass('radio-url');
});
或强>
$("input[type='radio'] + label").addClass('radio-url')
答案 5 :(得分:0)
$('input.radio').each(function () {
$(this).next().addClass('radio-url');
})
答案 6 :(得分:0)
答案 7 :(得分:0)
答案 8 :(得分:0)
将此作为答案发布,因为所有其他人都在使用错误的选择器,或者未在label
中指定next()
:
$('input.radio').next('label').addClass('radio-url');
..这会将课程radio-url
添加到label
课程input
之后的所有radio
元素