name 속성값이 user_name인 element를 모두 찾아 내용을 출력

 

var element = $('div[name="user_name"]');

var size = element.length;
for(i=0;i<size;i++){

console.log(element.eq(i).html());

}

Posted by duehd88
,

$(this).parent(); - 부모

$(this).children(); - 자식

$(this).prev(); - 전노드

$(this).next(); - 다음노드

Posted by duehd88
,

javascript도 객체지향언어이다. 즉, C++이나 Java에서 사용되는 콜백루팅을 구현할 수 있다.

Callback을 구현하여 사용하면 프로그램 동작중에 서브루틴이 외부에서 구현된 함수를 비동기적으로 호출이 가능해진다.

 

우선 Callback Event 객체를 만든다.

1
2
3
var CallbackEvent=function(){
    this.callback_method;
};
cs

 

그리고 여기선 Caller에서 메서드를 호출하게 Event를 등록하는 객체를 구현한다.

1
2
3
4
5
6
var EventRegister=function(event){
    this.callbackEvent=event;
    this.work=function(){
        this.callbackEvent.method();
    }
}
cs

 

이제 Callback을 호출하는 method를 구현하여 Event를 등록해보자

1
2
3
4
5
6
7
8
9
10
11
var EventApp=function(){
    this.execution=function(){
        var callbackEvent=new CallbackEvent();
        callbackEvent.method=function(){
            print('caller로 부터 호출됨');
        }
 
        var eventRegister=new EventRegister(callbackEvent);
        eventRegister.work();
    }
};
cs

 

이제 사용해 볼 차례

1
2
var eventApp=new EventApp();
eventApp.execution();
cs

 

이렇게하면 외부에서 구현된 Callback Method가 callee(피호출자)에서 caller(호출자)를 호출하게된다.

 

제작년에 공부한 내용이 메모장에 적혀있길래 간략히 사용법만 올려본다... 문법은 다르지만 java에서도 이러한 패턴으로 구현하면 된다.

Posted by duehd88
,

그냥 단순히 팝업을 띄우는 javascript 코드를 짜달라고 부탁했다. 그리고 다됏다길래 ctrl+cv 하고 사용하자마자 값이 이상해지기시작...

알고보니 변수 선언을 var로 하지 않고 바로 썻다...(라임이 맞네?ㅋㅋ)

var로 변수 선언을 하지 않을 경우 scope rule을 따르지 않고 암시적으로 global variable이 되어버리는 문제를 간과한 경우라고 볼 수 있다.

변수 선언시 꼭 var를 사용하도록 하자!

 

이를 제한하는 방법이 한가지 있는데 "use strict"; 이라는 키워드이다. 이는 EXMAScript 5에 추가되었던 기능으로 strict mode 사용시 폐지예정의 기능이나 권장되지 않는 기법의 동작에서 에러 또는 예외가 발생합니다.

 

그래서 "use strict";를 키워드를 명시하고 var없이 변수선언하면 에러가 발생합니다. 그리고 "use strict";는 scope rule을 따르기 때문에 지역 선언시 해당하는 scope에서만 "use strict"; 규칙이 적용됩니다.

Posted by duehd88
,