这个JQuery可以写得更短吗?

时间:2012-07-16 09:27:04

标签: jquery

我收到了这段代码:

$(document).ready(function () {
    $('tr.DataDark input[type=checkbox], tr.DataLight input[type=checkbox]').click(function () {
        $(this).closest('tr').toggleClass('Selected');
    });
    $('tr.DataDark input[type=checkbox]:checked, tr.DataLight input[type=checkbox]:checked').each(function () {
        $(this).closest('tr').addClass('Selected');
    });
});

可以写得更短吗?

感谢您的建议。

2 个答案:

答案 0 :(得分:2)

也许这个?不是更短,但可能更简单。

$(document).ready(function() {
  var checkBoxes = $('tr.DataDark input[type=checkbox], tr.DataLight input[type=checkbox]');

  checkBoxes.on("click", function() {
    $(this).closest('tr').toggleClass('Selected');
  });

  checkBoxes.filter(':checked').closest('tr').addClass('Selected');
});

为了缩短版本,您可以放弃checkBoxes变量并将filter().closest().addClass()来电直接链接到on("click")

答案 1 :(得分:0)

如果没有向我们展示匹配的HTML,那么我们可能会看到哪些快捷方式是可行的,没有任何有意义的方法来缩短您提供的代码行数。

有一些方法可以更改它或最小化它以减少字符数量或将多行折叠成一个更长的行,但是如果你想让它保持可读性并仍然执行相同的逻辑而不是人为地折叠多个将逻辑片段组合成一个更长的行,它将占用你拥有的代码行数。