2011-09-27 3 views
1

은 여기 내 예입니다.jQuery를 개체와 form.serialize

[0]을 사용하여 작업 속성에 액세스해야하는 이유는 무엇입니까? .serialize()[0]없이 완료되는 이유는 무엇입니까?

미안합니다.

답변

3

당신이 그것을 좋아하고 싶은 생각 :

$.post(form.attr('action')); 

그건 그렇고 : 당신은 모든 유형의 요소를 클래스 .anyclass로 얻고 있습니다. 이렇게하면 여러 양식 (있는 경우)이 반환됩니다. 당신이 이드에게 약간의 ID를 주면 그렇게 할 수 있습니다. $ ('# myForm').

+0

lol, 나는 근본적인 문제 *를 지적합니다. – rlemon

2

form에서 반환 된 변수 $(...)은 잠재적으로 많은 양식 요소에 대한 참조를 포함하는 jQuery 개체입니다.

내 기본 DOM 요소에 액세스하려면 해당 객체의에 배열 표기법 (위와 같음) 또는 form.get(0)을 사용해야합니다.

사용상의 차이점은 .serialize()이 jQuery 개체의 메서드이므로 form에서 호출해야합니다. 그러나

.action는 DOM 속성입니다, 그래서 당신은 선택적으로 사용할 수도 있지만, 당신은 그것을 액세스 할 기본 DOM 요소를 사용해야합니다

form.attr('action') 
1

에서 [0] 당신을위한 바로 DOM 개체를 제공합니다 양식,

형태 === JQuery와 객체
형태 [0] === DOM 객체

1

.serialize()는 일치하는 모든 요소에 적용되는 jQuery 메서드이기 때문입니다.

나는 소스에보고하지 않은,하지만 난 이런 일이 내기 :

return this.each(function(i, val){ 
    // do stuff 
}) 

가 그리고 당신은 form[0].action을 수행 할 때, 실제로 첫 번째 요소 (기본 DOM 요소)을 반환하고 일치하는 요소 세트 및 기본 속성에 액세스하십시오.

관련 문제