javascript - 为什么 IntelliSense 无法将我的查询选定项识别为元素?
问题描述
问题
我试图弄清楚为什么当我访问 HTML 元素时 VSCode 的 IntelliSense 不会建议元素对象属性:
document.querySelector();
每当我使用该document.querySelector()
方法然后使用.
运算符尝试查看所选元素的属性时,我都没有得到 CSS 属性列表,例如style
例子
我的 HTML 文件中有一个 div 元素,其类为“list”
<div class='list'>
在我的 .js 文件中,我可以通过以下方式访问该元素:
const listElement = document.querySelector('.list');
我的问题是在使用.
运算符时listElement
,VSCode 不显示基本属性,例如style
. 我仍然可以通过手动输入类似的东西来设置东西
listElement.style.display = 'none';
但是当我使用.
运算符时 VSCode 不建议style
,当我键入样式并.
再次使用运算符时,它不建议display
。我的问题是:
如何让 Intellisense 显示这些属性?
注意:我是 HTML、CSS 和 Javascript 的新手,所以我不知道我是否使用了所有正确的术语,但我试过了!
解决方案
VS Code 的 JavaScript IntelliSense 不知道你的 HTML 是什么样子,所以它会假设querySelector
返回一个非常通用的对象类型。这就是为什么您看不到有关.style
其他一些常见 DOM 属性的建议的原因。这些属性在返回时可能真的不存在querySelector
!
querySelector
但是,您可以使用简单的JSDoc 类型注释显式告诉 VS Code 返回的元素的类型:
/** @type {HTMLDivElement} */
const listElement = document.querySelector('.list');
这应该会给你正确的 IntelliSense:
推荐阅读
- javascript - Nestjs Apollo graphql 上传标量
- android - Android:有没有办法在自定义列表视图的单个 onItemClickListner() 方法中添加多个意图?
- java - CryptoJS 三重 DES 代码与 Java 等效
- react-native - React Native Admob for Google Admob 中 AdmobBanner 和 PublisherBanner 的区别?
- javascript - 当子 div 包含特定文本时,如何隐藏父 div?
- kendo-ui - Kendo 中数据源查询后的空列
- cordova - Cordova - 找不到名称“FirebaseCrashlytics”
- javascript - 过滤器不是函数
- assembly - 为什么 vhaddps 指令以如此复杂的方式添加?
- c# - UWP 问题 - 随机 UI 和图形消失