切换一个元素,它的兄弟姐妹可以如:选择一个元素和它的兄弟姐妹
$(this).toggle();
$(this).prev().toggle();
,结合它们不起作用:
$(this,$(this).prev()).toggle();
如何既可以在同一时间选择?
切换一个元素,它的兄弟姐妹可以如:选择一个元素和它的兄弟姐妹
$(this).toggle();
$(this).prev().toggle();
,结合它们不起作用:
$(this,$(this).prev()).toggle();
如何既可以在同一时间选择?
顺便说一句,虽然这个问题已经answered by drinchev ,我想我会在阅读这个问题之后,粘贴这个我刚才做的快速实验。虽然...它让我惊讶:
$('#recipient').click(
function(){
var pair = [this, this.previousElementSibling];
$(pair).toggleClass('red green');
});
3210。
顺便提一下,JS Perf loose comparison of the two selector approaches。
编辑添加一个IE-(到目前为止我所知)友好更新,虽然我目前正在备马所有浏览器都用它,而不是功能检测(也,我终于明白了蓝!=绿色):
function pESibling(n){
var nPS = n.previousSibling;
if (!n || nPS === null){
return false;
}
else if (nPS.nodeType == 1){
return nPS;
}
else {
return pESibling(nPS);
}
}
var that = document.getElementById('recipient'),
pair = [that, pESibling(that)];
$(pair).toggleClass('red green');
console.log(pair);
为上一个兄弟姐妹和自我:
$(this).prev().andSelf().toggle();
所有的兄弟姐妹和自我:
$(this).parent().children().toggle();
也可以工作:
$(this).prev().add($(this)).toggle()
网络的快乐!不,认真..! =)长话短说[IE <9不'做'previousElementSibling'](http://www.quirksmode.org/dom/w3c_core.html#t84)。尽管如此,还是有一种古老而时尚的“if”方法。 =) – 2012-04-22 16:25:29
测试解决方案时,我犯了一个愚蠢的错误。虽然,不,'previousElementSibling'不会做到这一点,只需使用一个数组将会...'$([$(this),$(this.prev())])''做到了! – Gary 2012-04-22 16:26:55
有一个简单的方法$(this).prev()。andSelf()。toggle(); – 2013-04-11 21:32:41