gpt4 book ai didi

jquery - 在 JQLite 中查找元素

转载 作者:行者123 更新时间:2023-12-01 00:22:21 25 4
gpt4 key购买 nike

我想将“dialog”类的 div 作为 Angular 指令中的 JQLite 元素进行访问。我无法使用element.find('div')因为我的模板中有另一个div。

根据此人的问题 ( AngularJS: How to .find using jqLite? )我尝试使用 angular.element(elem.querySelector('.dialog'))但我不知道什么elem应该是。我也尝试过使用

var body = element.find('body')
var dialog = body.children().eq(0);

但这似乎也不起作用。

我的 HTML 代码在这里;它链接到模板为 templateUrl :

<body>
<div class='dialog' ng-style="{'width': model.width+'px', 'height': model.height+'px', 'top':model.top+'px', 'left':model.left+'px', 'z-index': model.zindex}"
ng-mousedown='zorder()'>
<span class='topbar'>
<button id='minimize' ng-click="minimize()"> _ </button>
</span>
<div>
<ng-include src=model.template></ng-include>
</div>
<span class='drag'></span>
</div>
</body>

这是我的指令代码的基本结构:

angular.module('root', [])
.controller('index', ['$scope', function($scope){
$scope.dialogs = [
{
minimized: false,
width: 200,
height: 300,
top: 5,
left: 5,
zindex: 1,
template: 'experiment-dialog.html'
}]
}])

.directive('makeDialog', function($document) {
return {
restrict: 'E',
scope: {
model: '=',
dialogs: '='
},
templateUrl: 'dialog.html',
link: function(scope, element, attrs) {

//jqlite elements
var dialog = angular.element(elem.querySelector('.dialog'));
var topBar = dialog.children().eq(0);
var drag = dialog.children().eq(2);


dialog.css('border', 'solid purple') //fails to give dialog elements purple border
};
});

任何帮助将不胜感激。如果您需要更多信息,请告诉我!

最佳答案

链接函数中有 element 对象,它是 element 指令绑定(bind)到的 jqLit​​e 实例。为了能够使用 native 浏览器 DOM 方法,您需要使用纯 HTMLElement 对象,您可以通过其索引从 jqLit​​e 中提取该对象。

所以你应该在链接函数中使用element,如下所示:

link: function (scope, element, attrs) {

var dialog = angular.element(element[0].querySelector('.dialog'));
var topBar = dialog.children().eq(0);
var drag = dialog.children().eq(2);

dialog.css('border', 'solid purple');
};

关于jquery - 在 JQLite 中查找元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31617612/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com