我可以通过执行以下操作来向表单元素添加一个类:
$("input").each(function() {
$(this).addClass($(this).attr("name"));
});
基本上,它抓取表单值并将其作为类添加到元素中。在大多数情况下可能很好,但有时值将是数字。所以这让我有这样的事情:
<input type="radio" id="amount-5" name="submitted" value="50" class="form-radio 50">
我想,我可以将CSS作为.form-radio.50
进行定位,但最好在增值类前添加一些文本。理想地
<input type="radio" id="amount-5" name="submitted" value="50" class="form-radio radio-50">
我试过了:
$("input").each(function() {
$(this).addClass($('radio-class-' + this).attr("value"));
});
......那没用。我没有想法。 Here's my fiddle.
答案 0 :(得分:3)
这实际上非常接近,但你可以简单地使用这样的字符串:
$("input").each(function() {
$(this).addClass('radio-class-' + $(this).attr("value"));
});
或
$("input").each(function() {
$(this).addClass($(this).attr("type") + '-' + $(this).attr("value"));
});
所以你也可能因input type
而异:)
只是简单解释一下你为什么做不起作用:
$(this).addClass( $('radio-class-' + this).attr("value") );
$()是一个选择器(在大多数情况下),所以你基本上选择了一个不存在的radio-class-[this]
类型的元素。此外, this
是当前对象的引用,我相信不能通过编写'radio-class-'+this
将其转换为字符串。希望对你有意义。只需选择对象:$(this)
将this
转换为jQuery object
即可访问jQuery函数,例如.attr()
将返回一个值以用作字符串