Javascript 无法获取和更改子元素
当我尝试在元素上添加remove类时,我得到了未定义的属性'remove'。我可以使用element.parentNode获取父元素,当我记录它时,我看到有span子元素,但当我尝试记录或删除类时,似乎看不到有span元素。我做错了什么?如何获取子元素并对其进行更改?完整的代码在代码笔上。多谢各位Javascript 无法获取和更改子元素,javascript,angularjs,Javascript,Angularjs,当我尝试在元素上添加remove类时,我得到了未定义的属性'remove'。我可以使用element.parentNode获取父元素,当我记录它时,我看到有span子元素,但当我尝试记录或删除类时,似乎看不到有span元素。我做错了什么?如何获取子元素并对其进行更改?完整的代码在代码笔上。多谢各位 $scope.update = function(event, filterText) { var parent = event.parentNode; console.log(parent)
$scope.update = function(event, filterText) {
var parent = event.parentNode;
console.log(parent);
var children = parent.childNodes;
console.log(children);
children.forEach(child => {
console.log(child);
child.classList.remove('active-span');
});
//更新了以下内容,不再生成未定义的属性“remove”。但是,该类仍然不会从元素中删除
$scope.update = function(event, filterText) {
var spans = document.getElementsByClassName('header-span');
Array.from(spans).forEach(span => {
console.log(span);
span.classList.remove('active-span');
});
event.classList.add('span-active');
if(filterText === undefined){
$scope.searchText = filterText;
} else {
$scope.searchText = function(e) {
return (filterText.indexOf(e.Type) !== -1);
};
}
}
) 您有输入错误,该类应处于活动状态
span.classList.remove('span-active'); // not active-span
childNodes
返回所有子节点,包括元素、文本和注释,但只有元素具有classList属性。要仅返回子元素,您可以使用.children
,但请注意,这将返回一个活动HTMLCollection
,我认为您应该使用child.target.classList或.element或.nativeElement。我不确定angularjs,但在Angular2+中,我们使用component.nativeElement.classList