jQuery:从变量名或$(this)检查值

hel*_*ing 4 checkbox jquery checked

如果我有一些单选按钮:

<input type="radio" name="test" value="apple"> Apple<br/>
<input type="radio" name="test" value="banana" CHECKED> Banana<br/>
<input type="radio" name="test" value="carrot"> Carrot<br/>
Run Code Online (Sandbox Code Playgroud)

然后我用jQuery定义了无线电组

var test = $('input:radio[name="test"]')
Run Code Online (Sandbox Code Playgroud)


如何在不重写的情况下基于变量test获取checked元素的值

var test_val = $('input:radio[name="test"]:checked').val();
Run Code Online (Sandbox Code Playgroud)

我试过了两个

$(test):checked.val();
test:checked.val();
Run Code Online (Sandbox Code Playgroud)

作为变更函数的一部分,我也试过这个:

$(test).change(function() {
    if ($(this):checked.val() == 'no') {
        $('#featured').stop().fadeOut();
    } else if ($(this):checked.val() == 'yes') {
        $('#featured').stop().fadeIn();
    }
});
Run Code Online (Sandbox Code Playgroud)

只是想知道这是否可行,或者我是否必须重新写出完整的输入选择器来获取值.

PS
如果IE8不支持:checked选择器,我可以使用什么?

jAn*_*ndy 7

你可以使用.filter()帮助:

test.filter('input:checked')
Run Code Online (Sandbox Code Playgroud)

.filter() 也支持回调:

test.filter(function() {
    return this.name === 'test' && this.checked
});
Run Code Online (Sandbox Code Playgroud)

我不知道:checked选择器不适用于IE8.如果这是真的,后一个例子应该工作(直接访问节点expando)