使用jquery将类添加到ng-repeat中的第一个项目

时间:2016-02-07 03:10:25

标签: javascript jquery angularjs

我是复杂指令的新手,我试图在jquery的ng-repeat中添加一个类(不幸的是我的项目正在使用它),就像在指令的控制器中一样:

   var highlightFirst = function(){
      $('.pointer').find('.fa-angle-down-first').next().addClass('boldit');
      console.log('in here')
    }

    highlightFirst();

    //also tried this:
    angular.element(document).ready(function(){
      $('.pointer').find('.fa-angle-down-first').next().addClass('boldit');
      console.log('in here')
    });

我立即调用该功能。什么都没发生。

当我运行$('.pointer').find('.fa-angle-down-first').next().addClass('boldit');时 在chrome dev工具中,我想要加粗的实际上是粗体...我想让这个特定解决方案工作的原因是什么?什么是最好的角度方式呢?

3 个答案:

答案 0 :(得分:17)

你实际上并不需要jquery,并且应该避免在角度应用程序中尽可能多地使用jquery,你应该使用ng-class$first来处理<ul> <li ng-repeat="item in items" ng-class="{'fooClass': $first}">{{ item }}</li> </ul> $first 3}}

ng-repeat

关于<?php #connect.php connect to the mysql server define('DB_HOST','localhost'); define('DB_PORT', '3306'); define('DB_NAME', 'cookbook'); define('DB_USERNAME', 'root'); define('DB_PASSWORD', ''); try{ $dns = 'mysql:host='.DB_HOST.';port='.DB_PORT.';dbname=' . DB_NAME; $pdo = new PDO($dns , DB_USERNAME, DB_PASSWORD); $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE,PDO::FETCH_ASSOC); $pdo->exec('set session sql_mode = traditional'); $pdo->exec('set session innodb_strict_mode = on'); $stmt = $pdo->prepare('select * from firstNmae'); $stmt->execute(); $resute = $stmt->fetchAll(); echo'<pre>'; print_r($resute); echo '</pre>'; } catch(PDOException $e){ die(htmlspecialchars($e->getMessage())); } 的好处是,当您对tryprint_r(PDO::getAvailableDrivers());进行排序时,它仍能正常工作。

答案 1 :(得分:11)

只需使用ng-class:

<ul>
    <li ng-repeat="item in items" ng-class="{'myClass': item == items[0]}">{{ item.property }}</li>
</ul>

修改:链接到更多详情

https://docs.angularjs.org/api/ng/directive/ngClass

答案 2 :(得分:2)

我们试试这个:

$(document).ready(function(){
  $('.pointer').find('.fa-angle-down-first').next().addClass('boldit');
  console.log('in here');
});

关于你的第一条路:

var highlightFirst = function(){
  $('.pointer').find('.fa-angle-down-first').next().addClass('boldit');
  console.log('in here');
};

highlightFirst();

我应该说你应该确保你的代码在页面和元素加载后运行。