找到邻近的兄弟姐妹jquery?

时间:2011-03-19 08:06:38

标签: jquery user-interface siblings

好吧我一直在寻找这个答案(如果有的话)没有运气

我有一系列div元素,如下图所示:

http://i61.photobucket.com/albums/h46/DrAcOliCh_2006/untitled-1.jpg?t=1300520458

蓝色背景是橙色div的绝对父级,也是兄弟姐妹

DOM根据橙色元素在页面上的显示方式不是很有条理,因为它们都是可拖动的(我使用了jquery UI)并且我在父级内部移动它们,但是,正如有些人所知,DOM不会当我移动可拖动元素时重新组织,所以基本上兄弟姐妹结构在DOM内部保持不变

我需要什么(再次,如果这是可能的)是确定彼此的邻近兄弟姐妹的页面;换句话说,假设我们采用“FlashBanner”元素,在页面上,将“Logo”,“Search”和“ShoppingBasket”元素作为直接顶级兄弟,将“Categories”和“Content”元素作为直接底部兄弟姐妹(没有左或右兄弟姐妹)

我有一个手动解决方案,即通过一系列表单字段和内容(另一个故事和另一个文本墙来解释)为每个元素预先指定邻居兄弟姐妹,但这并不重要atm我想知道它是否可以自动完成(即告诉jquery为我找到它们)

感谢任何帮助,即使是“它不能自动完成”,并感谢您的时间

希望这听起来不含糊(或者对于那件事很傻)以及为什么我需要这样做不要问:P墙的文字解释

欢呼:)

1 个答案:

答案 0 :(得分:0)

只是想澄清一下,当你用draggable-ui移动东西时,DOM确实会自行改变。

这样可以帮助您找到所需内容。

您可以执行以下操作:

$('#flashbanner').prev()  // For previous siblings

或遍历所有div。

$(#blue).find('div').each(function(){
  $(this).blahblah  // current div
});

甚至可以遍历所有以前的兄弟姐妹,寻找高峰等等。但这应该是最后的事情......

$('#flasshbanner').prevAll().each(function(){
  var height = $(this).height();
  if(height == blahblah){
    //do stuff
  }
});

但关键是DOM,当你移动东西时它会移动,所以如果你知道会发生什么,你可以使用jQuery“自动”找到它。 Firefox插件FireBug可以帮助您在移动它时查看新的DOM。 (我相信大多数网络开发人员在开发过程中使用FireFox是因为FireBug的纯粹光彩btw)

您可以尝试将代码上传到http://jsfiddle.net/,以便我们进一步了解实际的源代码。 :)

祝你好运。