【问题标题】:how to select by classname in angular from json如何从json中按角度选择类名
【发布时间】:2016-08-07 21:07:00
【问题描述】:

我试图通过在角度类中进行选择来获取元素的内部值。但是由于某种原因,当我尝试选择 var highlighted = angular.element(element.getElementsByClassName("btn-danger")); 时它一直给我一个错误这是错误 angular.js:13642TypeError: angular.element.getElementsByClassName is not a function 可能是因为我将 angular 和 jquery 混合在一起

主要问题在于点击控制器。 它获取与json一起加载并应该显示在鼠标底部的ul的值单击我(数字仅用于测试)

该项目是一个单击键盘,最终将具有间隔和切换键,因此残疾人只需单击一次即可键入

这里是风景

<body ng-controller="mainController"   ng-click="textArea = textArea + 1">


    <div ng-controller="clickController">

        <header>
            <nav class="navbar navbar-default">
            <div class="container">
                <div class="navbar-header">
                    <a class="navbar-brand" href="#">Click and Type</a>
                </div>

                <ul class="nav navbar-nav navbar-right">
                    <li><a href="#"><i class="fa fa-home"></i> Home</a></li>
                </ul>
            </div>
            </nav>
        </header>

        <div class="container">

            <div ng-controller="intervalController">

                <ul class="general_button" ng-repeat="letter in language[0].rows track by $index" ng-init="rowIndex = $index"> {{rowIndex}}
                    <button type="button" class="btn " ng-class="{true:'btn-danger', false:'btn-info'}[rowIndex ==isSelected() || columnIndex == isSelected()]" ng-repeat="single in letter track by $index" ng-init="columnIndex = $index"> 
                         {{columnIndex}}{{single}}
                    </button>
                </ul>

                <div  >

                     <h1 ng-mousemove="textArea = textArea + 1">Mouse over me!</h1>

                    <label for="inputlg">input-lg</label>
                    <input class="form-control input-lg" id="inputlg" type="text" value="{{ textArea + highlightedLetter }}">
                </div>

            </div>
        </div>


    </div>
    </body>
</html>

这是模型

var App = angular.module('App', []);
var theLanguage = 'english';
App.factory('jsonLanguage', function($http){
    var theLanguage = 'english';
    return {

        get: function(theLanguage){
            //var url = theLanguage + '.json';
            var url = 'english.json';
            return $http.get(url);
        }
    }

});
App.controller('mainController', function($scope, $http, $log, jsonLanguage) {


    jsonLanguage.get().then(function(res){
        $scope.language = res.data;
        $log.log($scope.language);
    });

    $scope.isSelected = function(rowIndex, columnIndex) {
        return 0;

    }



});

App.controller('intervalController', function($scope, $log) {
    this.$log = $log;
    //var name = $scope.single;

    //$log.log(name);


});

App.controller('clickController', function($scope, $log) {
    $scope.$log = $log;
    var highlighted = angular.element(angular.element.getElementsByClassName("btn-danger"));
    alert($scope.highlightedLetter = highlighted.value);
});

非常感谢任何帮助,因为我是 Angular 新手。

【问题讨论】:

    标签: javascript jquery angularjs json


    【解决方案1】:

    Jquery 中没有 getElementsByClassName 方法。尝试使用标准 DOM 查询:

    var highlighted = angular.element(document.querySelector(".btn-danger"));
    

    【讨论】:

      【解决方案2】:

      getElementsByClassName 是 DOM 元素的函数,而不是 jQuery。

      试试这个,它可能对你有帮助:

      var classElement = document.getElementsByClassName("multi-files");
      var highlighted= angular.element(classElement);
      

      【讨论】:

      • 使用像类这样的特殊名称来命名变量从来都不是好习惯,在这种情况下,类名是非常不可取的,因为这个变量包含 DOMCollection,所以命名为 classElements 会好得多。
      • 我根据您的建议进行了编辑。我只是想告诉他如何解决他的问题
      猜你喜欢
      • 1970-01-01
      • 2014-09-20
      • 1970-01-01
      • 2018-02-10
      • 2021-02-10
      • 2019-05-29
      • 2020-06-29
      • 1970-01-01
      • 2018-06-09
      相关资源
      最近更新 更多