programing

jqLite를 사용하여 클래스 이름별로 요소를 선택하는 방법은 무엇입니까?

instargram 2023. 3. 3. 16:50
반응형

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

반응형