像jQuery一样使用prevAll的JavaScript
JavaScript to use prevAll like jQuery?
如何在JavaScript中实现这一点?
function prevAll (element) {
// some code to take all siblings before element?
return elements;
};
使用.previousElementSibling
,您可以获得上一个节点,它是一个实际的元素(而不是文本节点或注释(。
function prevAll(element) {
var result = [];
while (element = element.previousElementSibling)
result.push(element);
return result;
}
如果需要,可以在IE8中对.previousElementSibling
属性进行聚合填充。
我应该注意,IIRC,jQuery按文档顺序返回元素。如果是这种情况,并且这是您所需要的,那么当您返回数组时,只需.reverse()
即可。
使用previousSibling
属性,并循环直到它为null。
如果情况需要,可以使用生成器:
const sibGen = function* (element) {
let sibling = element.previousElementSibling;
while(sibling !== null) {
sibling = sibling.previousElementSibling;
yield sibling
}
}
然后称之为:
const siblingGenerator = sibGen(myElement);
// filter(Boolean) removes the null element
const allSiblings = [...siblingGenerator].filter(Boolean);
相关文章:
- 为什么不't Javascript对我的输入值进行了一些重新检查
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 将函数的上下文应用于javascript变量
- 使用php或javascript从facebook相册URL中删除多余的部分
- 正在添加'X'按钮,在文本字段旁边使用javascript
- 如何在JavaScript中将字符串转换为函数引用
- 模糊事件的Javascript测试
- Javascript更改图标
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 如何使用WCF服务和javascript表单post上传.doc文件
- javascript结合了数组和字典
- 这是什么 ==- javascript 运算符
- 从javascript创建一个列表
- 无法在通过jQuery的ajax加载的页面中执行javascript
- Javascript:selenium Web驱动程序isDisplayed()不工作
- 如何通过ajax刷新JSF填充的javascript变量
- 如何在Javascript中将JSon对象转换为数组
- Javascript生成的表单未提交
- 使用javascript将动态表从一个html页面打印到另一个html页
- 像jQuery一样使用prevAll的JavaScript