2. jQuery.support로 기능 찾기
• 1.3버전에서 추가된 기능
• 브라우저의 특정 기능 지원 여부 확인 기능
• jQuery.support.xxxx
• 많이 사용되지는 않는다고 함……
3. jQuery.support로 기능 찾기
boxModel
- 브라우저가 W3C CSS 박스 모델 명세에 따라 렌더링 하면 True 반환
cssFloat
- style.cssFloat가 현재의 CSS float 값을 가져오기 위해 사용되었다면 True 반환
IE의 경우 styleFloat를 지원. false를 반환 함
hrefNormalized
- 브라우저가 getAttribute(‘href’)값을 원래 값 그대로 가져오면 True 반환
IE의 경우 full-URL을 반환한다고 함….
jQuery Document에는 false를 반환한다고 나와있으나 IE8에서 테스트해보면 true 반환… -ㅅ- ;;;
htmlSerialize
- 브라우저가 innerHTML을 사용하여 <link>요소를 적절히 직렬화하면 True 반환
IE의 경우 false 반환
noCloneEvent
- 브라우저가 DOM 요소를 복제할 때 이벤트 핸들러를 복제하지 않으면 True 반환
IE의 경우 false 반환
4. jQuery.support로 기능 찾기
opacity
- 브라우저가 CSS opacity 스타일을 해석 할 수 있으면 True 반환
IE의 경우 alpha filter를 대신 사용하고 있으며 false 반환
objectAll
- 요소에 대해 getElementsByTagName(‘*’)를 사용할 때 모든 자식 요소를 반환하면 True 반환
1.6.4 버전에서 지원되지 않음…… -ㅅ- ;; 실제로 찍어보면 undefined 반환, jQuery Document에도 없음
scriptEval
- <script> 태그에 대해 appendChild 사용하는 것이 스크립트를 실행하게 되면 True 반환
1.6버전에서 삭제 됨. 1.5.1 이후 버전에서는 scriptEval() method로 변경
style
- getAttribute(‘style’)이 요소에 지정된 인라인 스타일을 반환할 수 있으면 True 반환
tbody
- <tbody> 요소 없이도 <table> 요소를 허용하면 True 반환
IE에선 false를 반환한다고 되어 있으나… IE8에서 테스트 결과 true 반환… -ㅅ- ;;
5. jQuery.each를 사용하여 배열과 개체를 반복하여 처리하기
• $.each( ) method
‒ $.each(collection, callback(indexInArray, valueOfElement))
var week = [‘Mon’, ‘Tue’, ‘Wed’, ‘Thu’, ‘Fri’, ‘Sat’, ‘Sun’];
$.each(week, function(index, value){
$(‘#week’).append(‘<li>’ + value + ‘</li>’;
});
‒ $( ).each 와는 다른 메소드
<ul>
<li><a href=“http://mail.naver.com”>네이버 메일</a></li>
<li><a href=“http://cafe.naver.com”>네이버 카페</a></li>
<li><a href=“http:// mail.naver.com/note”>네이버 쪽지</a></li>
</ul>
$(“ul li a”).each(function(index){
var link = $(this).attr(“href”);
window.open(link);
return false;
}
‒ $.each()는 개체나 배열을 첫번째 매개변수로 받으며, $( ).each( )는 선택
된 jQuery 컬렉션만 처리가 가능하다
6. jQuery.grep을 사용하여 배열 필터링 하기
• $.grep( ) method
‒ $. grep(array, function(elementOfArray, indexInArray) [ , invert])
‒ 배열로부터 필터링 시키는 함수를 통해 특정한 배열만 반환
<dt> 평일 </dt><dd id=“weekday”></dd>
<dt> 주말 </dt><dd id=“weekend”></dd>
var week = [‘Mon’, ‘Tue’, ‘Wed’, ‘Thu’, ‘Fri’, ‘Sat’, ‘Sun’];
var weekday = $.grep(week, function(day, index){
return (index < 5)
});
var weekend = $.grep(week, function(day, index){
return (index >= 5)
});
$(“#weekday”).text(weekday.join(“, “));
$(“#weekend”).text(weekend.join(“, “));
7. jQuery.map을 사용하여 배열 항목을 반복하며 수정하기
• $.map( ) method
‒ $. map(array, callback(elementOfArray, indexInArray)) v1.0
$. map(arrayOrObject, callback(value, indexOrKey)) v1.6
‒ 배열[이나 객체]의 모든 요소를 콜백함수를 통해 가공하여 새로운 배열[객
체 v1.6]로 변환
var dayOfWeek = [‘Monday’, ‘Tuesday’, ‘Wednesday’, ‘Thursday’, ‘Friday’, ‘Saturday’, ‘Sunday’];
var weekdayname = $.map(dayOfWeek, function(value, i){
return value.substr(0, 3);
};
8. jQuery.merge로 두 개의 배열을 결합하기
• $.merge( ) method
‒ $. merge(first, second)
‒ 두 개의 배열의 요소들을 첫번째 배열에 합친다.
var weekday = [‘Monday’, ‘Tuesday’, ‘Wednesday’, ‘Thursday’, ‘Friday’];
var weekend = [‘Saturday’, ‘Sunday’];
var week = $.merge(weekday, weekend);
‒ 주의! 첫 번째 배열의 원래값이 필요하다면 $.merge( ) 메소드 호출 전에
카피해 놓아야 한다.
9. jQuery.merge로 두 개의 배열을 결합하기
• $.merge( ) method
‒ $. merge(first, second)
‒ 두 개의 배열의 요소들을 첫번째 배열에 합친다.
var weekday = [‘Monday’, ‘Tuesday’, ‘Wednesday’, ‘Thursday’, ‘Friday’];
var weekend = [‘Saturday’, ‘Sunday’];
var week = $.merge(weekday, weekend);
‒ 주의! 첫 번째 배열의 원래값이 필요하다면 $.merge( ) 메소드 호출 전에
카피해 놓아야 한다.
var weekday = [‘Monday’, ‘Tuesday’, ‘Wednesday’, ‘Thursday’, ‘Friday’];
var weekend = [‘Saturday’, ‘Sunday’];
document.writeln("weekday : " + weekday.join(', ‘) + “<br />” );
var week = $.merge(weekday, weekend);
document.writeln("week : " + week.join(', ‘) + “<br />” );
document.writeln("weekday : " + weekday.join(', ‘) + “<br />” );
weekday : Monday, Tuesday, Wednesday, Thursday, Friday
week : Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday
weekday : Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday
10. jQuery.unique를 사용하여 중복된 배열 항목 필터링 하기
• $.unique( ) method
‒ $. unique(array)
‒ DOM 요소 배열을 정렬하고 중복된 요소를 삭제
‒ 문자열이나 숫자의 배열에서는 동작 X, DOM 요소 배열에서만 동작
<div> 1번 </div>
<div id="target"> 2번 </div>
<div class="dup"> 3번 </div>
<div class="dup"> 4번 </div>
<div class="dup"> 5번 </div>
<div> 6번 </div>
<script>
var divs = $("div").get();
document.writeln("처음 DIV 갯수 : " + divs.length + "개 <br />");
divs = divs.concat($(".dup").get());
document.writeln("가공중 DIV 갯수 : " + divs.length + "개 <br />");
divs = $.unique(divs);
document.writeln("유니크한 DIV 갯수 : " + divs.length + "개 <br />");
</script>
처음 DIV 갯수 : 6개
가공중 DIV 갯수 : 9개
유니크한 DIV 갯수 : 6개
11. jQuery.trim을 사용하여 폼 값 또는 문자열에서 공백 제거하기
• $.trim( ) method
‒ $. trim(str)
‒ 문자열의 시작, 끝 부분의 공백 제거
<input type=“text” id=“usrID” value=“ mulder21c ” />
<script>
var usrID = $.trim($(“input”).val());
</script>
12. jQuery.data를 사용하여 DOM에 개체와 데이터 첨부하기
• $.data( ) method
‒ $.data(element, key, value)
‒ Json 형식으로 데이터를 저장
var store = $(“div”).get(0);
$.data(store); // store의 unique id 반환 (데이터 저장소 index)
$.data(store, “name”, “지성봉”); // store의 데이터 저장소의 “name” 키에 “지성봉” 을 저장
$.data(store, “name”); // store의 데이터 저장소에서 “name” 키에 해당하는 값 반환
13. jQuery.extend를 사용하여 개체 확장하기
• $.extend(target [,object1][,objectN]) method
‒ 두 개 이상의 개체를 첫번째 개체에 합침
‒ 동일한 속성이 있을 경우 후자의 것으로 덮어 씌움
<script>
var obj = {apple:1,banana:5}
var obj2 = {apple:3, graph : 4}
$.extend(obj, obj2);
$.each(obj, function(index, value){
document.writeln(index + " : " + value + "<br />");
});
</script>
apple : 3
banana : 5
graph : 4