Angular TS2339:不动产';href';不存在于类型';HTMLElement';
我遇到了以下问题: 我无法访问HTML元素的属性href。 我得到这个错误:Angular TS2339:不动产';href';不存在于类型';HTMLElement';,angular,typescript,Angular,Typescript,我遇到了以下问题: 我无法访问HTML元素的属性href。 我得到这个错误: Property 'href' does not exist on type 'HTMLElement'.ts(2339) 代码如下: @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.css'] }) export class AppComponent
Property 'href' does not exist on type 'HTMLElement'.ts(2339)
代码如下:
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent implements AfterViewInit {
title = 'clientes-app';
ngAfterViewInit(){
(function($) {
"use strict";
var path = window.location.href;
$("#layoutSidenav_nav .sb-sidenav a.nav-link").each(function() {
if (this.href === path) {
$(this).addClass("active");
}
});
// Toggle the side navigation
$("#sidebarToggle").on("click", function(e) {
e.preventDefault();
$("body").toggleClass("sb-sidenav-toggled");
});
})(jQuery);
}
}
这是HTMLElement的接口: 并非每个HTML元素都具有href属性。 在回答中,我假设您正在访问锚标记。 但是,据我所知,以下HTML元素可能具有href属性:
<a>, <link>, <area>, <base>.
。
因此,您可以分别使用这些接口:HTMLanchoreElement、HTMLinkElement、HTMLEAElement、HTMLBaseElement。这是HTMLElement的接口: 并非每个HTML元素都具有href属性。 在回答中,我假设您正在访问锚标记。 但是,据我所知,以下HTML元素可能具有href属性:
<a>, <link>, <area>, <base>.
。
因此,您可以分别使用这些接口:HTMLanchoreElement、HTMLinkElement、HTMLEAElement、HTMLBaseElement。并非所有的
HTMLElement
都有href
属性。在访问当前迭代的元素之前,请检查该元素是否是具有href
属性的htmlanchoreElement
if (this instanceof HTMLAnchorElement && this.href === path) {
$(this).addClass("active");
}
并非所有
HTMLElement
s都有href
属性。在访问当前迭代的元素之前,请检查该元素是否是具有href
属性的htmlanchoreElement
if (this instanceof HTMLAnchorElement && this.href === path) {
$(this).addClass("active");
}
为了进一步解释,
每个
都应用于集合HTMLElement
s。因此this.href
中的this
指的是HTMLElement
。并非页面中的每个HTML元素都有href,因此,HTMLElement
类型自然不会有href
属性。但是像HTMLanchoreElement
这样的类型会。非常详细的答案,但我想他只是在
navbar$(“#layoutSidenav_nav.sb sidenav a.nav-link”)
谢谢,我也这么认为。我只想提及其他HTML标签,这些标签可能有href属性,以防将来有人用谷歌搜索这个问题请不要翻译非英语问题。它们与堆栈溢出无关,必须以“需要清晰性”或“不适合…”的理由关闭。为了进一步解释,每个
都应用于集合HTMLElement
s。因此this.href
中的this
指的是HTMLElement
。并非页面中的每个HTML元素都有href,因此,HTMLElement
类型自然不会有href
属性。但是像HTMLanchoreElement
这样的类型会。非常详细的答案,但我想他只是在
navbar$(“#layoutSidenav_nav.sb sidenav a.nav-link”)
谢谢,我也这么认为。我只想提及其他HTML标签,这些标签可能有href属性,以防将来有人用谷歌搜索这个问题请不要翻译非英语问题。它们与堆栈溢出无关,必须以“需要清晰”或“不适合…”的理由关闭它们。Angular和JQuery永远不会是朋友ngAfterViewInit
是一个特定且有用的生命周期挂钩,如果您使用2008全局库和现在与Angular竞争的自动执行函数,它将变得完全无关。铸造是你未来最基本的问题。Angular和JQuery永远不会成为朋友ngAfterViewInit
是一个特定且有用的生命周期挂钩,如果您使用2008全局库和现在与Angular竞争的自动执行函数,它将变得完全无关。铸造是你未来最基本的问题。