我有以下代码: $('#MyDiv .TheClass').eq(TheIndex).removeClass('ClassA');$('#MyDiv .TheClass').eq(TheIndex).removeClass('ClassB');$('#MyDiv .TheClass').eq(TheIndex).addClass('ClassC');$('#MyDiv .TheClass').eq(TheIndex).children().each
$('#MyDiv .TheClass').eq(TheIndex).removeClass('ClassA'); $('#MyDiv .TheClass').eq(TheIndex).removeClass('ClassB'); $('#MyDiv .TheClass').eq(TheIndex).addClass('ClassC'); $('#MyDiv .TheClass').eq(TheIndex).children().each(function () { //do something here });
似乎我多次使用$(‘#MyDiv .TheClass’).eq(TheIndex)行;我怎样才能做得更好?
我想到了
var TheDiv = $('#MyDiv .TheClass').eq(TheIndex); TheDiv.removeClass('ClassA'); TheDiv.removeClass('ClassB'); TheDiv.addClass('ClassC'); TheDiv.children().each(function () { //do something here });
但我想知道那里是否有更好的建议.
谢谢.
jQuery提供了 fluent interface [Wikipedia]的大部分方法:$('#MyDiv .TheClass').eq(TheIndex) .removeClass('ClassA ClassB') .addClass('ClassC') .children().each(function () { // do something here });
如果您确定该元素具有ClassA和ClassB类并且需要ClassC,则可以使用.toggleClass()
[docs]:
$('#MyDiv .TheClass').eq(TheIndex) .toggleClass('ClassA ClassB ClassC') .children().each(function () { // do something here });
虽然不一定与您的案例相关,但如果您想在每个循环后链接更多方法,则以下方法将适用于所选子项.如果你想再次选择原始元素($(‘#MyDiv .TheClass’).eq(TheIndex))你可以使用.end()
[docs]在链中“退一步”.