Javascript 创建div后如何获取div的长度
我正在做一篇Javascript 创建div后如何获取div的长度,javascript,jquery,angularjs,Javascript,Jquery,Angularjs,我正在做一篇$http(角度)文章,然后在那里画ng repeat一些div 之后我需要知道我刚刚创建了多少个div,然后在JQuery中进行了一些DOM操作 这是我的代码: function ContactController($scope, $http,$location) { $http.post('/Home/MakeThings', '{}').then( function (obj) { $scope.questionsArr = obj.data; conso
$http
(角度)文章,然后在那里画ng repeat
一些div
之后我需要知道我刚刚创建了多少个div,然后在JQuery
中进行了一些DOM
操作
这是我的代码:
function ContactController($scope, $http,$location) {
$http.post('/Home/MakeThings', '{}').then(
function (obj) {
$scope.questionsArr = obj.data;
console.log($scope.questionsArr);
var numBox = $('div[class^="boxQ"]').length;
console.log(numBox);
$scope.changeRoute = function (myPath) {
console.log($scope.myPath);
$location.path(myPath);
}
},
function (error) {
});
}
我无法访问
$('div[class^=“boxQ”]”)
因为我猜,它还没有被ng重复画出来
我能做些什么来选择它。我不知道你到底想做什么,但我认为指令能够做你想做的任何操作才是正确的选择。该示例在$scope上生成一个questionsArr数组。这些都显示为ng repeat和自定义指令。指令是执行操作的内容。我在单击元素时切换boxQ类
var mod = angular.module("myApp", []);
mod.controller("MainController", function ($scope) {
$scope.questionsArr = [
"What is your name?",
"Where do you live?"
];
});
mod.directive("questionBox", function () {
return {
restrict: "A",
transclude: true,
template: '<div ng-transclude></div>',
link: function (scope, elem, attrs) {
//elem refers to the jQuery/jqLite
//element of the directive (e.g. <div questionBox></div).
//Just toggling class on click
elem.on("click", function () {
elem.toggleClass("boxQ");
});
}
}
});
var mod=angular.module(“myApp”,[]);
模块控制器(“主控制器”,功能($scope){
$scope.questionsArr=[
“你叫什么名字?”,
“你住在哪里?”
];
});
修改指令(“问题框”,函数(){
返回{
限制:“A”,
是的,
模板:“”,
链接:功能(范围、要素、属性){
//元素指的是jQuery/jqLite
//指令的要素(例如,如果你的ng repeat是从你放在$scope上的questionsArr中删除的,那么它只是其中的项目数。只需检查questionsArr.length就可以知道创建的div的数量。通常最好尝试在angular控制器中限制jquery操作。这很好,但我也需要进行DOM操作。比如adding一个css,在ng repeat中设置div的动画,等等,为什么你不做一个指令,然后在其中进行DOM操作。很快就会发布fiddle。在控制器中设置选择器是一个很强的错误指示。
<div ng-app="myApp" ng-controller="MainController">
<div ng-repeat="q in questionsArr">
<div question-box>{{q}}</div>
</div>
</div>