jQuery - 속성을 판별하는 hasAttr() 함수는 없다

제이쿼리에서는 attr()과 같이 속성을 설정하는 함수는 제공하지만, hasAttr()과 같이 속성(attribute)의 유무를 판별하는 함수는 제공하지 않습니다. 그렇기 때문에 hasAttr()처럼 속성의 유무를 판별하려면 별도의 is()나 filter() 함수를 사용해야 하는데요. 오늘은 jQuery를 사용해서 속성 유무를 판별하는 방법을 알아보겠습니다.

Javascript로 attribute 유무 판별하기

 DOM에서 기본으로 제공하는 기능 중 Element의 hasAttribute()를 사용하면 속성을 판별할 수 있습니다. jQuery를 굳이 별다르게 조작할 필요 없이 말이죠. 아래의 방법은 jQuery 객체가 가진 참조값을 이용해 Element에 접근해서 속성 유무를 판별하는 방법입니다.

$(this)[0].hasAttribute("attrName");

or

jqObj[0].hasAttribute("attrName");

Filtering을 사용한 attribute 판별 

 제이쿼리에서 제공하는 함수 중 is()filter()를 사용하면, 속성의 유무를 판별할 수 있습니다. 개인적으로는 is()가 조금 더 의미가 분명하다고 생각되어 is()를 사용하는데요. is()와 filter()를 사용해 속성의 유무를 판별하는 방법은 다음과 같습니다.

$(this).is('[attrName]');

$(this).filter("[name='attrName']");

 고전적이기는 하지만 is()나 filter() 대신 attr()을 사용해서도 속성의 유무를 판별할 수 있습니다.

var attr = $(this).attr('attrName');

if (typeof attr !== typeof undefined && attr !== false) {
  ...
}

 

반응형

댓글

Designed by JB FACTORY