【发布时间】:2018-02-12 16:59:32
【问题描述】:
我已经习惯了 DOM 中的nextSibling和nextElementSibling。有没有一种简单的方法可以用 Boomla 文件做类似的事情?
我需要同一个占位符中的下一个兄弟姐妹(如果这是最后一个则为 null),但我有兴趣在 any 占位符中找到下一个兄弟姐妹(如果这是则为 null最后一个占位符中的最后一个文件)。
【问题讨论】:
标签: boomla
我已经习惯了 DOM 中的nextSibling和nextElementSibling。有没有一种简单的方法可以用 Boomla 文件做类似的事情?
我需要同一个占位符中的下一个兄弟姐妹(如果这是最后一个则为 null),但我有兴趣在 any 占位符中找到下一个兄弟姐妹(如果这是则为 null最后一个占位符中的最后一个文件)。
【问题讨论】:
标签: boomla
目前,没有内置方法。
以下是sjs-4 引擎在占位符或父级中获取下一个的两种方法:
var nextInBucket = function(f) {
var bucket = f.bucketId();
var bucketSiblings = f.query("../:" + bucket);
var path = f.path();
var index = 0;
var found = false;
bucketSiblings.each(function(t) {
if (t.path() == path) {
found = true;
return false;
}
index++;
});
if ( ! found) {
return null;
}
return bucketSiblings.eq(index + 1);
}
var nextInParent = function(f) {
var parentChildren = f.query("../*");
var path = f.path();
var index = 0;
var found = false;
parentChildren.each(function(t) {
if (t.path() == path) {
found = true;
return false;
}
index++;
});
if ( ! found) {
return null;
}
return parentChildren.eq(index + 1);
}
【讨论】: