如何使用jquery检查输入类型是否为radio

时间:2010-12-16 18:05:31

标签: jquery html

我想根据类型不同地处理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
}

3 个答案:

答案 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')