不在DOM中选择脚本标记条件

时间:2018-04-27 03:35:28

标签: jquery html angularjs

当DOM中的特定类可用时,不选择条件。仅当DOM中的availablediv类可用时才需要启用以下脚本。但即使DOM中存在availablediv类,这种情况也不会被选中。

<script>

$(document).ready(function(){
if($('.availablediv').length > 0){
$('head').append('<style type="text/css">.data {
      width: 5%;
}
    .presalesDiv .callPlans h3 {
font-size: 15px !important;
}   
.handsetDiv .callPlans p {
    font-size: 14px !important;
}
.upfront ul li {
    display: block;
}</style>');

} 
});
</script>

下面是显示div的角度ng-if条件,条件正常。

<div class="availablediv" ng-if="data.cluster_desc_count > 0">
                                        <div ng-if="data.cluster_scode">

                                            <ul>
                                                <li>{{data.clusterData}}</li>
                                                <li>{{data.clusterSpeed}}</li>
                                            </ul>
                                        </div>

</div>

1 个答案:

答案 0 :(得分:1)

  
      
  1. 不要在jquery中使用角度混合。这个解决方案会让人有些困惑。因为angular和jquery与DOM绑定不同。

         

    因此,当文档准备就绪时,div .availablediv可能不会   可用

  2.   
  3. 不要使用追加头。这使你的代码非常糟糕

  4.   

如果你想观看元素并添加css,我建议你使用:

1。使用$ rootScope将类添加到正文

&#13;
&#13;
scope.$watch('data.cluster_desc_count', function(value) {
       if (value > 0) {
          $rootScope.isClusterDescCount = true;
       } else {
          $rootScope.isClusterDescCount = false;
       }
    });
&#13;
&#13;
&#13;

并使用$rootScope.isClusterDescCount将类添加到正文中。

<body ng-app="app" ng-class="{isClusterDescCount: 'is-have-cluster'}">

你的css将是

&#13;
&#13;
body.is-have-cluster .presalesDiv .callPlans h3 {
font-size: 15px !important;
}   
body.is-have-cluster .handsetDiv .callPlans p {
    font-size: 14px !important;
}
body.is-have-cluster .upfront ul li {
    display: block;
}
&#13;
&#13;
&#13;

2。您可以使用jquery将类添加到正文,如

&#13;
&#13;
scope.$watch('data.cluster_desc_count', function(value) {
   if (value > 0) {
      $('body').addClass('is-have-cluster');
   } else {
      $('body').removeClass('is-have-cluster');
   }
});
&#13;
&#13;
&#13; css将是相同的

希望这个帮助