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')
무슨 생각 있어?다른 아이디어?
감사해요.
라이오르
기본적으로 @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'))
주의: 컨트롤러에서 이 작업을 수행할 경우 개발자 가이드의 "컨트롤러를 올바르게 사용" 섹션을 참조하여 프레젠테이션 로직을 적절한 지시(<a2b... 등)로 리팩터링하는 것이 좋습니다.> ) ) 。
angualr 에서는 jqlite라고 불리는 보다 가벼운 버전의 jquery를 사용합니다.이는 jQuery의 모든 기능을 갖추고 있지 않음을 의미합니다.다음은 jquery에서 사용할 수 있는 항목에 대한 angularjs 문서 참조입니다.각도 요소 문서
당신의 경우 아이디 또는 클래스 이름을 가진 div를 찾아야 합니다.클래스 이름에 사용할 수 있습니다.
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));
}}
또는 쿼리 셀렉터에 의해 훨씬 더 간단한 방법을 사용할 수 있습니다.
angular.element(document.querySelector('#id'))
angular.element(elem.querySelector('.classname'))
jQuery만큼 유연하지는 않지만
한다면elem.find()
이 기능을 하지 않습니다.각진 스크립트 앞에 JQuery 스크립트가 포함되어 있는지 확인하십시오.
언급URL : https://stackoverflow.com/questions/17283697/how-to-select-an-element-by-classname-using-jqlite
'programing' 카테고리의 다른 글
ng-click angularjs 폼 검증 (0) | 2023.03.03 |
---|---|
angularjs newline 필터(다른 html 없음) (0) | 2023.03.03 |
리액트 라우터 v4의 이력을 얻는 방법 (0) | 2023.03.03 |
WFMLRSVCApp.ear 파일을 찾을 수 없습니다. (0) | 2023.03.03 |
$http 오류입니다.get in angularJS -- 함수가 아닌 성공 (0) | 2023.03.03 |