如何通过 angular 指令访问前一个兄弟?

How to access the previous sibling through an angular directive?

目前,我正在使用 ELEMENTREF 通过 Redenrer2 访问 DOM。这是一个基本示例:

import { Directive, Renderer2, ElementRef } from '@angular/core';

@Directive({
  selector: '[appHighlight]'
})
export class HighlightDirective {

  constructor(private renderer: Renderer2, private el: ElementRef) {
    this.renderer.setStyle(this.el.nativeElement, 'background', 'yellow');
  }

}

以上代码只是将语法高亮保留为黄色的测试。

但是,我需要知道如何访问前一个元素并捕获它的宽度以移动到左样式 属性?

例:前哥的宽度是400px。当前元素左边400px

我期待合作。

可以获得parent元素:

let parent = this.renderer.parentNode(this.elementRef.nativeElement);

然后 select 他的 child 不知何故,也许给他们递增的 ID:

let sibling = parent.querySelector('#child5');

然后你有兄弟姐妹宽度:

let width = sibling.offsetWidth;.

希望对您有所帮助。