是因为PreviousSibling属性只能获取到当前节点的前一个同级节点,而querySelector返回的是一个匹配的元素列表,不仅包括同级节点,还包括子节点和后代节点。
如果想要获取前一个同级节点,可以使用previousElementSibling属性来代替PreviousSibling。previousElementSibling属性返回当前节点的前一个同级元素节点,如果不存在则返回null。
示例代码:
var element = document.querySelector("#myElement");
var previousSibling = element.previousElementSibling;
在这个例子中,我们使用querySelector选择了id为"myElement"的元素,然后通过previousElementSibling属性获取了它的前一个同级元素节点。
如果需要获取所有的前一个同级节点,可以使用previousSibling属性结合循环来实现:
var element = document.querySelector("#myElement");
var previousSiblings = [];
while (element.previousSibling) {
if (element.previousSibling.nodeType === Node.ELEMENT_NODE) {
previousSiblings.push(element.previousSibling);
}
element = element.previousSibling;
}
在这个例子中,我们使用了一个循环来遍历当前节点的所有前一个同级节点,将符合条件的元素节点添加到previousSiblings数组中。
关于querySelector和相关的DOM操作方法,腾讯云提供了云函数(SCF)服务,可以用于构建和运行云端应用程序。您可以通过腾讯云云函数产品页面了解更多信息:腾讯云云函数
领取专属 10元无门槛券
手把手带您无忧上云