javascript - JS 无法更改 className

标签 javascript angularjs class

我正在尝试更新 div#programmation 的第一个子级的类

<div id="programmationEtat">
   <div class="tab-pane ng-scope">...</div>
   <div class="tab-pane ng-scope">...</div>
   <div class="tab-pane ng-scope">...</div>
   ...
</div>

我尝试过:

var children = document.getElementById("programmationEtat").children;
console.log(children);
children[0].className = 'active';
console.log(children);

第一个控制台日志显示:

tab-pane ng-scope

第二个说:

active

但是什么都没有改变,当我查看 HTML(chrome 调试器)时,我仍然有

<div class="tab-pane ng-scope"> 

我做错了什么?! 预先感谢您!

编辑: 我发现了问题: 我在包含此 div 的范围上使用动态指令:

   app.directive('dynamic', ['$compile', function ($compile) {
  return {
    restrict: 'A',
    replace: true,
    link: function (scope, ele, attrs) {
      scope.$watch(attrs.dynamic, function (html) {
        ele.html(html);
        $compile(ele.contents())(scope);
      });
    }
  };
}]);

我有

$scope.programmation='...<div id="programmationEtat">
       <div class="tab-pane ng-scope">...</div>
       <div class="tab-pane ng-scope">...</div>
       <div class="tab-pane ng-scope">...</div>
       ...
    </div>...'

HTML:

<div dynamic="programmation" id="programmationEtat">
    ... 
</div>

看起来使用 document.getElementById(...) 更新 $scope.programmation 中包含的内容是不可能的,必须直接更新 $scope.programmation 。

为了解决我的问题,我使用了替换函数($scope.programmation.replace(...))!

最佳答案

使用 ng 类:

<div id="programmationEtat">
   <div ng-class="className"class="tab-pane ng-scope">...</div>
   <div class="tab-pane ng-scope">...</div>
   <div class="tab-pane ng-scope">...</div>
</div>

$scope.className = 'active';

或者:

<div id="programmationEtat">
   <div ng-class="{ 'active': activated }"class="tab-pane ng-scope">...</div>
   <div class="tab-pane ng-scope">...</div>
   <div class="tab-pane ng-scope">...</div>
</div>

$scope.activated = true;

关于javascript - JS 无法更改 className,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48228607/

相关文章:

python - 使用动态 base_class 在 __new__ 子类中设置属性

java - 如何在太多类之间传递值?

c++ - 如何使用构造函数初始化单链表的值

javascript - 如何在 Angular JS 中的动画之后触发 Controller 功能

angularjs - Angular 用户界面树折叠/展开不起作用

php - 使用 htaccess 将 js/css 解析为 PHP 文件

javascript - 在 http 和 https 之间共享 dom 存储

javascript - 你如何使用 jasmine + TypeScript 测试一个用常量调用的函数

javascript - 引用类型和 GetValue()

javascript - ngstrap typeahead无序多关键字搜索