我想根据类型不同地处理html元素。
使用jquery,如何检查输入类型是否为单选按钮?
我试过了:
if ($('#myElement').is(':radio')) {
....//code here
}
和
if ($('#myElement').is("input[type='radio']")) {
....//code here
}
这些都没有奏效。有什么想法吗?
编辑:
if ($('#myElement').is(':radio')) {
....//code here
}
有效,但我的单选按钮没有id属性,它们只有一个name属性,这就是为什么它不起作用。
我将代码更改为:
if ($('input[name=' + myElement + ']').is(":radio")) {
....//code here
}
答案 0 :(得分:46)
只要元素被加载,它就应该有效。
// Ensure the DOM is ready
$(function() {
if ($('#myElement').is(':radio')) {
//code here
}
});
如果您根据类型分配处理程序,另一种方法是使用.filter()
。
$(function() {
var el = $('#myElement');
el.filter(':radio').change(function() {
//code here
});
el.filter(':checkbox').change(function() {
// other code here
});
});
如果它没有通过filter()
,则不会分配处理程序。
答案 1 :(得分:1)
这应该可行,您可以尝试以这种方式使用过滤器
if ($('#myElement').filter(':radio').size() > 0) {
....//code here
}
and
if ($('#myElement').filter("input[type='radio']").size() > 0) {
....//code here
}
或
$('#myElement:radio').each(function() {
....//code here
});
Udate:您是否也确定该ID在页面中是唯一的?如果你想选择更多的1元素,你可以改用一个类。
答案 2 :(得分:1)
if($('#my-element').attr('type') == 'radio')