'2009/06/25'에 해당되는 글 2건

  1. 2009.06.25 JQUERY 동적객체 컨트롤 1
  2. 2009.06.25 LinkedHashMap

JQUERY 동적객체 컨트롤

2009. 6. 25. 16:33 from JAVASCRIPT
jquery는 셀렉터를 이용해 DOM에서 가져온 객체를 jquery내장함수를 이용해 다양하게 가공할 수 있다.
예를들어
<body>
  <div></div>
<script type="text/javascript">
//<![CDATA[
$(document).ready( function() {
  $('div').html('동적으로 추가된 innerHTML');
});
//]]>
</script>
</body>
※스크립트 태그는 head, 또는 body사이에만 넣을것!

위와같이 DOM을 읽어들여서 innerHTML을 수정할 수있다.
비슷한것 같지만 셀렉터로 읽어오지 않은
document.getElementsByTagName('div')[0] 에서는 html() 함수를 사용할 수 없다.
따라서
var d = document.createElement('div');
로 만들어진 div는 DOM Object가 될 수는 있지만 Jquery객체는 아니므로 Jquery에서 지원하는 내장함수들을 사용할 수 없다.

jquery의 동적이벤트 등록방식이 필요해서 위와같은 경우 처리법을 찾아봤는데 혹시나 하고
$(d).click(function(){alert();});
이렇게 써보니 Object를 Jquery객체로 인식했다. 해서
$(div).css('color','#f00').html('클릭이벤트 동적으로 등록').click(functionname).appendTo($('body'));
하게되면 onclick태그가 없이도 해당객체에 이벤트를 등록할 수 있다.
click이벤트가 아닐경우는 Jquery객체.bind('mouseover', function); 등의 형식으로 사용가능하다

그런데 $(document.createElement('div')).click(function(){alert();});
이렇게 하면 한줄이네.
Posted by 윤재현 :

LinkedHashMap

2009. 6. 25. 11:35 from JSP
이거 다 아는거겠지만 또 자세히 물어보면 모르는사람도 많고 하니 20일만에 게시물 업데이트좀 합니다.

아주 가~끔 개발할때
벡터에 꼴랑 키와 값을 담아서 꺼내야 할 경우가 있습니다.

Vector v = new Vector();
String[] arr = null;
for( int i = 0; i < 10; i++ ){
  arr = new String[2];
  arr[0] = "key";
  arr[1] = "value";
  v.add(arr);
}
String[] result = (String[])v.get(0);
System.out.println(result[0]);

이렇게 사용하겠죠
사실 그냥 맵에서 키, 값 쭉~ 찍으면 되는데 찍어보시면 알겠지만 순서가 뒤죽박죽 입니다. List형과 Map형은 그 특성이 달라서 원래 순서를 기억하기 위해서는 리스트를 쓰는게 맞긴합니다.
하지만 LinkedHashMap은 Map중에서 특이하게 순서를 기억합니다.


해서 아래와 같은코드에 생성자를 LinkedHashMap을 사용하면 입력된 순서대로 출력되고
HashMap 이나 HashTable, HashSet 이런거 쓰면 뒤죽박죽으로 나옵니다.

    LinkedHashMap m = new LinkedHashMap();
//    HashMap m = new HashMap();
    for( int i = 0; i < 10; i++ ){
      m.put( String.valueOf(i), String.valueOf(i) );
    }
    Iterator i = m.keySet().iterator();
    String temp;
    while(i.hasNext()){
      temp = String.valueOf(i.next());
      System.out.println(m.get(temp));
    }

물론 LinkedHashMap은 리스트처럼 순서를 저장하므로 성능은 다른 맵에 비해서 떨어질 수 있습니다.
얼마 차이는 안나요.
Posted by 윤재현 :