내 페이지에서 '필터'rel을 사용하여 모든 요소를 찾고 js 객체에 추가하는 함수를 작성하려고합니다.자바 스크립트 함수는 작동하지만 정의되지 않은 함수를 반환합니다.
함수 내에서 console.log를 사용할 때 함수 자체가 잘 작동하는 것처럼 보이지만 어디에서나 함수를 호출하려고하면 정의되지 않은 값이 반환됩니다. 나는이 비동기 호출이있는 일반적인 문제입니다 실현,하지만 난 그였다 경우 여기 생각하지 않았다 : 다시
function getFilters() {
jQuery(document).ready(function($) {
var filters = new Array();
$("[rel=filter]").each(function(i,e){
var type = $(e).attr('type');
if(type == 'checkbox') { if($(e).is(':checked')) var val = $(e).prop('checked'); }
else if(type == 'radio') { if($(e).is(':checked')) var val = $(e).val(); }
else var val = $(e).val();
if(val) filters.push({name : $(e).attr('name'), value : val});
});
return filters;
});
}
, 내가 CONSOLE.LOG를 실행 (필터); 리턴 필터 대신; 내 데이터가 괜찮아. 내가 그것을 반환하려고 할 때, 그것은 단지 정의되지 않은 결과를 가져온다. 어떤 도움이라도 대단히 감사합니다.
함수에서 아무 것도 반환하지 않습니다. 당신은 jQuery 콜백에서 돌아오고 있습니다. – SLaks
함수 내에 DOM 준비 콜백을 포함하지 말고 DOM 준비 콜백 내에서 함수를 호출해야합니다. – christian314159
나는'ready' 콜백이 필요한 것을 완전히 알지 못한다고 생각합니다. https://learn.jquery.com/using-jquery-core/document-ready/를 참조하십시오. –