1

好的,我一直在寻找答案(如果有的话),但没有运气

我有一系列 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 文字墙来解释

干杯:)

4

1 回答 1

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。(我相信大多数 Web 开发人员在开发时都会使用 FireFox,因为 FireBug 的纯正才华顺便说一句)

您可以尝试将您的代码上传到http://jsfiddle.net/,这样我们就可以通过实际的源代码进一步帮助您。:)

祝你好运朋友。

于 2011-03-21T08:32:55.247 回答