jQuery - 在.prop()之后运行一个函数

时间:2015-03-10 19:36:06

标签: jquery

几个jQuery函数接受一个函数参数,它将在函数完成后运行(因此只有当函数运行的选择器匹配任何东西时),但不是全部。我想要做的是选择正确的单选按钮(基于.each()迭代中的键/值对),然后显示ID与值匹配的div。

上下文是我基于JSON格式的数组填充表单,遍历每一对。

以下是片段:

$('input:radio[name="' + key + '"][value="'+ value + '"]')
     .prop('checked', true);    
}); // this works

然后我想要运行这一行:

$('#' + value).show();

仅当第一个选择器匹配任何内容时。

我确定这是一种简单的方法,但我不知道。

1 个答案:

答案 0 :(得分:3)

我想你可以分手吧。有一个包含选择器结果的变量。如果该数组包含任何匹配项(检查其长度),则将checked属性设置为true并显示另一个元素:

var $matches = $('input:radio[name="' + key + '"][value="'+ value + '"]');
if ($matches.length) {
    $matches.prop('checked', true);
    $('#' + value).show();
}

如果您多次运行,只需将其包装在以keyvalue为参数的函数中。

编辑:您可以将其缩短一点:

var $matches = $('input:radio[name="' + key + '"][value="'+ value + '"]').prop('checked', true);
$('#' + value).toggle($matches.length);

如果没有匹配项,此示例还会隐藏其他元素。