How to select an element by classname using jqLite?

若如初见. 提交于 2019-11-26 04:08:01

问题


I\'m trying to remove jquery from my Angular.js app in order to make it lighter, and put Angular\'s jqLite instead. But the app makes heavy use of find(\'#id\') and find (\'.classname\'), which are not supported by jqLite, only \'tag names\' (as per documentation)

wondered what do u feel would be the best approach to change it. One approach I thought about is to create custom HTML tags. for example: change
<span class=\"btn btn-large\" id=\"add-to-bag\">Add to bag</span>

to

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

and

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

to

$element.find(\'a2b\')

Any thoughts? other ideas?

thanks

Lior


回答1:


Essentially, and as-noted by @kevin-b:

// find('#id')
angular.element(document.querySelector('#id'))

//find('.classname'), assumes you already have the starting elem to search from
angular.element(elem.querySelector('.classname'))

Note: If you're looking to do this from your controllers you may want to have a look at the "Using Controllers Correctly" section in the developers guide and refactor your presentation logic into appropriate directives (such as <a2b ...>).




回答2:


If elem.find() is not working for you, check that you are including JQuery script before angular script....




回答3:


angualr uses the lighter version of jquery called as jqlite which means it doesnt have all the features of jQuery. here is a reference in angularjs docs about what you can use from jquery. Angular Element docs

In your case you need to find a div with ID or class name. for class name you can use

var elems =$element.find('div') //returns all the div's in the $elements
    angular.forEach(elems,function(v,k)){
    if(angular.element(v).hasClass('class-name')){
     console.log(angular.element(v));
}}

or you can use much simpler way by query selector

angular.element(document.querySelector('#id'))

angular.element(elem.querySelector('.classname'))

it is not as flexible as jQuery but what



来源:https://stackoverflow.com/questions/17283697/how-to-select-an-element-by-classname-using-jqlite

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!