【发布时间】:2023-03-15 22:58:02
【问题描述】:
我正在尝试清理我的应用程序中所有与 jQuery 相关的东西。当我这样做时,我在 javascript 方法和 Angular 本机方法之间使用时感到困惑。因此,我需要对以下代码进行一些说明。
用jQuery动态添加和删除类:
$('.my-class').removeClass('list-hide').addClass('list-show');
在 Javascript 中:
var element = document.getElementByClassName('.my-class');
element.classList.remove('list-hide');
element.classList.add('list-show');
使用 TypeScript:
const element = this.elemRef.nativeElement.querySelector('.my-class');
element.classList.remove('list-hide');
element.classList.add('list-show');
问题是我有很多上面的场景可以通过 DOM Id 和类名访问。如果我使用 ElementRef,我可能会多次写 this.elementRef.nativeElement。
另外在官方文档中说 - '如果不支持直接访问本机元素,请使用 Render2' 并注意。
请帮助我更好地访问 DOM 元素,而无需从我的 Angular 应用程序中进行更多重复和 jQuery。
【问题讨论】:
-
您可以在您的 Angular 项目中使用 Jquery。参考这个 [stackoverflow.com/questions/30623825/…
-
我想从我的项目中完全删除 JQuery
-
@Mukesh 问题是关于摆脱 jQuery,而不是添加它
-
@Onera 你知道你仍然可以在打字稿中简单地使用
document.getElementByClassName,对吧? -
你想达到什么目的?您可以在组件中使用带有标志的
[ngClass]属性(类似isOpen的布尔属性),或者您可以为元素创建自定义组件。但这真的取决于你需要什么。所以很难说什么最适合你的情况。
标签: javascript jquery angular typescript