当前位置 : 主页 > 网页制作 > JQuery >

jquery – 切换行颜色

来源:互联网 收集:自由互联 发布时间:2021-06-15
我在页脚中有一个表格单元格,允许用户打开行着色: $('#highlight').click(function() {$(this).parents('table').RowColors();})// From Chapter 7 of Learning jQuery$.fn.RowColors = function() {$('tbody tr:odd', this).removeC
我在页脚中有一个表格单元格,允许用户打开行着色:

$('#highlight').click(function() {
$(this).parents('table').RowColors();
})

// From Chapter 7 of Learning jQuery
$.fn.RowColors = function() {
$('tbody tr:odd', this).removeClass('even').addClass('odd');
$('tbody tr:even', this).removeClass('odd').addClass('even');
return this;
};

问:如何编写一个选择器:如果至少有一行class =“even”,则删除“even”和“odd”ELSE执行RowColors函数.

我的建议是略有不同.只有一个类的默认状态是另一个.所以:

tr td { background: yellow; }
tr.odd td { background: blue; }

然后这很简单:

$("tr").toggleClass("odd");

或者更具体地说:

$("tbody > tr").removeClass("odd").filter(":nth-child(odd)").addClass("odd");

注意:避免使用:odd和:even.它们通常并不代表您认为的含义. :nth-​​child(单数)和:nth-​​child(even)往往是你真正的意思.

我可能会写一些类似的东西:

$("#highlight").click(function() {
  $(this).closest("table").children("tbody").children("tr").removeClass("odd")
    .filter(":nth-child(odd)").addClass("odd");
  return false;
});

如果您愿意,可将其放入单独的功能中.

编辑:检查是否有空:

var odd = $(".odd");
if (odd.length == 0) {
  // do one thing
} else {
  // do something else
}

jQuery对象支持length属性和size()方法,它们执行相同的操作.

网友评论