jquery选择兄弟姐妹’直到’
我有一个DOM的forms
我知道这是不对的,正确的方法是改革HTML,但我们说这是不可能的。
我怎样才能让jquery选择一个父母的所有孩子(即选择所有.children直到.parent)
jQuery 1.4现在有.nextUntil(选择器)function:
$('div.parent').toggle( function() { $(this).nextUntil('div.parent').hide(); }, function() { $(this).nextUntil('div.parent').show(); } );
您可以遍历nextAll
div
兄弟元素直到找到以下.parent
,请检查以下示例 :
$('.parent').click(function() { $(this).nextAll('div').each(function() { if ($(this).is('.parent')) { return false; // next parent reached, stop } $(this).toggleClass('highlight'); }); });
标记使用:
parent 1 child child parent 2 child parent 3 child child child
…
*请参阅@foson回答jquery 1.4+ *
看看Ben Almans 直到utils 。
它为您提供了3种有用的方法:nextUntil,prevUntil,parentsUntil。
我认为不需要上面的自定义函数,JQuery通过nextUntil(selector, filter)
函数支持这个function,但是你应该添加filter,只将脚本应用于过滤后的元素而不是所有下一个元素:
//hide all .child elements $('div.child').hide(); $('div.parent').click(function() { //Toggle (show or hide) only .child elements until finding .parent element. $(this).nextUntil('div.parent', 'div.child').slideToggle('slow'); });