Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法获取和更改子元素_Javascript_Angularjs - Fatal编程技术网

Javascript 无法获取和更改子元素

Javascript 无法获取和更改子元素,javascript,angularjs,Javascript,Angularjs,当我尝试在元素上添加remove类时,我得到了未定义的属性'remove'。我可以使用element.parentNode获取父元素,当我记录它时,我看到有span子元素,但当我尝试记录或删除类时,似乎看不到有span元素。我做错了什么?如何获取子元素并对其进行更改?完整的代码在代码笔上。多谢各位 $scope.update = function(event, filterText) { var parent = event.parentNode; console.log(parent)

当我尝试在元素上添加remove类时,我得到了未定义的属性'remove'。我可以使用element.parentNode获取父元素,当我记录它时,我看到有span子元素,但当我尝试记录或删除类时,似乎看不到有span元素。我做错了什么?如何获取子元素并对其进行更改?完整的代码在代码笔上。多谢各位

$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