Php / WebStorm在我的JavaScript代码中报告了这个奇怪的警告,指出未在元素/节点中定义属性id
。事实是,该元素是从父元素获取的firstChild
元素。
function hideChildAndUpdateID(title) {
let parent = document.getElementById('parent');
let child = parent.firstChild;
// Hiding the child.
child.style.display = 'none';
// Temporary ID so we can find it later.
child.id = 'child-tmp-id'; // Warning occurs here
}
这是Php / WebStorm的全部消息
Property id is not defined in type Node less... (Ctrl+F1)
Inspection info: This inspection reports assignments to undefined properties of explicitly type-annotated variables.
此代码本身实际有效。 child
元素将其id
更改为我设置的值,但是此警告使我烦恼。
我尝试使用child.setAttribute('id', 'child-tmp-id')
,但是无法正常工作。
在处理firstChild
时是否有约定或者仅仅是Php / WebStorm的问题?
答案 0 :(得分:1)
节点不仅可以是元素,也不必具有id
属性。尝试使用firstElementChild
代替它返回作为元素的第一个孩子:
function hideChildAndUpdateID(title) {
let parent = document.getElementById('parent');
let child = parent.firstElementChild;
// Hiding the child.
child.style.display = 'none';
// Temporary ID so we can find it later.
child.id = 'child-tmp-id';
}