首页 > 解决方案 > 获取ID后将属性添加到数组中的一行

问题描述

修改后,我想添加一个属性来突出显示我的数组中最新或最后更新的行,直到用户离开页面。我不知道如何选择正确的行getElementsByTagName()功能。

零件

在这里,我得到了我选择的对象并添加了一个属性,但问题是 id 不是该行的索引,因此它不会将属性添加到正确的行。

 getById(id: number) {
    this.getByIdSub = this.service.get(id).subscribe((data) => {
      console.log(data);
      if (id != null) {
       var t = document.getElementsByTagName("tr")[id].setAttribute("id", "test");
      }
    });
  }

例如,我想选择 ID 为 10 的数组的第一行并将属性设置为它,但它将选择第 10 行,因为我在索引中传递了 ID 10。 我的数组 在这张图片中,我点击了第三行,但第一行被突出显示

标签: javascriptangular

解决方案


如果您的 id 是目标元素的 id,那么您可以使用document.querySelector("tr#" + id). 这将选择并返回带有 id 属性的 TR 元素id。所以你的代码是:

 getById(id: number) {
    this.getByIdSub = this.service.get(id).subscribe((data) => {
      console.log(data);
      if (id != null) {
       var t = document.querySelector("tr#" + id).setAttribute("id", "test");
      }
    });
  }

您可以在此处找到更多信息:https ://developer.mozilla.org/en-US/docs/Web/API/Document/querySelector


推荐阅读