我有3个兄弟姐妹:
----------------------
| div1 | div2 | div3 |
----------------------
我需要找到我正在与之交互的当前div的兄弟姐妹(特别是他们的'#id')。现在我有几个if else
语句,但我认为有一种更有效的方法可以做到这一点。
我最初有:
var siblingOne = $(div).siblings([0]).attr('id');
var siblingTwo = $(div).siblings([1]).attr('id');
但无论siblingOne
如何,它始终会为siblingTwo
和siblings([index])
选择相同的兄弟。
所以我最终使用了这种方法 - 虽然有效,但还是有点额外的工作。
function foo(div){
if(div == "#div1"){
var siblingOne = $(div).next().attr('id');
var siblingTwo = $(div).next().next().attr('id');
}
else if(div == "#div2"){
var siblingOne = $(div).prev().attr('id');
var siblingTwo = $(div).next().attr('id');
}
else{
var siblingOne = $(div).prev().attr('id');
var siblingTwo = $(div).prev().prev().attr('id');
}
}
稍后我会申请:('#'+siblingOne)
和('#'+siblingOne)
,以便我可以访问该ID,如果这有意义的话。
感谢。有什么建议吗?
答案 0 :(得分:0)
也许可以由他们的父母打电话给他们?
$("#container").children().each(function(){
$(this).dosomething();
}
答案 1 :(得分:0)
我想你可以这样做:
var $siblings = $(currentDiv).siblings();
var sibling1Id = $siblings[0].id;
var sibling2Id = $siblings[1].id;
答案 2 :(得分:0)
var ids = $(div).siblings().map(function(i,o){ return $(o).attr('id'); })
这将返回一组id。
然后,您可以使用ids[0]
访问第一个ID,使用ids[1]