#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