好吧我一直在寻找这个答案(如果有的话)没有运气
我有一系列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墙的文字解释
欢呼:)答案 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/,以便我们进一步了解实际的源代码。 :)
祝你好运。