我如何将这两个jquery语句链接成一个?

时间:2011-03-29 08:42:50

标签: jquery

好的,我想将这些语句链接成一个,但我不知道它是如何工作的......

我的html文件中有很多输入,然后如果我点击一个链接,它只会检查该链接并取消选中其他输入复选框。这是我当前的代码:

$('.category').click(function() {
   $('input[name=category]').attr('checked', false);
   $(this).parent().find('input').attr('checked', true);
}

我认为这可能会很慢,因为第二个语句将转到它的父语句然后找到输入然后检查它。可能将这些组合成一个并使其更快?

3 个答案:

答案 0 :(得分:3)

看到你链上的.parent().find()号召唤让我觉得你真的在寻找兄弟姐妹?使用.siblings()功能可以获得更好的里程。

考虑到这一点,您可能想要像这样说出您的代码:

$('.category').click(function(){
    $('[name="category"]').attr('checked',true);
    $(this).siblings('input:checkbox').attr('checked',true);
});

如果没有首先看到代码,很难为您的特定DOM构建正确的链,但上面的代码应该没问题。看起来一点都不重。

答案 1 :(得分:2)

您可以在.find()中添加额外的过滤功能,只查找复选框

$(this).parent().find('input[type="checkbox"]').attr('checked', true);

答案 2 :(得分:-1)

只找一次......

var $category = $('input[name=category]');
var $inputs = $('your_parent_selector');
$('.category').click(function() {
   $category.attr('checked', false);
   $inputs.attr('checked', true);
}