如何使用jqLit​​e通过类名选择元素?

如何使用jqLite通过类名选择元素?

我试图从我的Angular.js应用程序中删除jquery,以使其更轻巧,而改用Angular的jqLite。但是该应用程序大量使用了jqLite不支持的find('#id')和find('。classname'),仅使用了“标签名称”(根据文档)


想知道您认为改变它的最佳方法是什么。我考虑过的一种方法是创建自定义HTML标签。例如:更改

<span class="btn btn-large" id="add-to-bag">Add to bag</span>



<a2b style="display:none;"><span class="btn btn-large" >Add to bag</span></a2b>


$element.find('#add-to-bag') 


$element.find('a2b')

有什么想法吗?其他想法?



回首忆惘然
浏览 670回答 3
3回答

素胚勾勒不出你

本质上,由@ kevin-b指出:// find('#id')angular.element(document.querySelector('#id'))//find('.classname'), assumes you already have the starting elem to search fromangular.element(elem.querySelector('.classname'))注意:如果要从控制器中执行此操作,则可能需要查看开发人员指南中的“正确使用控制器”部分,并将演示文稿逻辑重构为适当的指令(例如<a2b ...>) 。

HUX布斯

angualr使用称为jqlite的较轻版本的jquery,这意味着它不具有jQuery的所有功能。这是angularjs文档中有关可以在jquery中使用的参考。 角度元素文档在您的情况下,您需要找到具有ID或类名的div。您可以使用类名称var elems =$element.find('div') //returns all the div's in the $elements&nbsp; &nbsp; angular.forEach(elems,function(v,k)){&nbsp; &nbsp; if(angular.element(v).hasClass('class-name')){&nbsp; &nbsp; &nbsp;console.log(angular.element(v));}}或者您可以通过查询选择器使用更简单的方法angular.element(document.querySelector('#id'))angular.element(elem.querySelector('.classname'))它不像jQuery那样灵活,但是

GCT1015

如果elem.find()对您不起作用,请检查是否在角度脚本之前包含了JQuery脚本。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

AngularJS