Добавление атрибута к строке в массиве после получения идентификатора

#javascript #angular

#javascript #угловой

Вопрос:

После внесения изменений я хотел бы добавить атрибут для выделения самой новой или последней обновленной строки в моем массиве до тех пор, пока пользователь не покинет страницу. Я не знаю, как выбрать правильную строку getElementsByTagName() функции.

Компонент

Здесь я получаю выбранный объект и добавляю атрибут, но проблема в том, что идентификатор не является индексом строки, поэтому он не добавляет атрибут в правую строку.

  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");
      }
    });
  }
 

Например, я хочу выбрать первую строку моего массива с идентификатором 10 и присвоить ей атрибут, но он выберет 10-ю строку, потому что я передаю идентификатор 10 в индексе.
мой массив
На этой картинке я нажал на 3-ю строку, но первая строка выделена

Комментарии:

1. Используйте document . querySelector( #${id} ).setAttribute(«id», «test»)

Ответ №1:

Если ваш идентификатор является идентификатором целевого элемента, то вы можете использовать document.querySelector("tr#" id) . Это позволит выбрать и вернуть элемент TR с атрибутом id 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