아래 javascript에서 "this"는 Car 객체를 나타내며 search_id는 "search_input"이라는 ID를 가진 입력 텍스트 필드를 참조합니다. 그래서 기본적으로 사용자는 필드의 텍스트를 입력하고 검색을 입력을 기반으로 발생합니다. 이제 val() 메서드가 입력 필드에서 사용자 입력 문자열을 가져 오는 것을 이해합니다. 그러나 split() 메서드의 콜론이 무엇을하는지 확신 할 수 없습니다. split() 메서드는 빈 문자열을 전달할 때 쉼표 구분 기호를 사용한다고 생각했습니다. 그리고 나서 splitted 변수는 입력에서 분리 된 문자열 배열을 보유하고있는 것처럼 보입니다. 그러나 왜 우리는 문자열 배열 (splitted [0])과 두 번째 문자열 (splitted [1])의 첫 번째 분류 문자열을 전달한 다음이를 string_to_scope 변수에 전달합니까? 기본적으로 검색을 만드는 과정에 있습니다. 그리고 내가 무슨 일이 일어나고 있는지 모르겠어요이 세 줄의 :split (":")에서 검색을 작성하여 객체로 색인화
var splitted = jQuery(this.search_id).val().split(": ");
if (splitted[0] && splitted[1]){
if (string_to_scope[splitted[0]]) ret[string_to_scope[splitted[0]]] = splitted[1];
여기에 더 문맥의 : 어떤 응답을
Car.prototype.filter_func=function(){
var ret={};
var string_to_scope = {
'Year': 'year_num_eq',
'Make': 'make_name_eq',
'Description': 'description_eq',
'Expiry': 'expires_on_eq'
};
var search_value = jQuery(this.search_id).val();
if(search_value != null && search_value.length > 0){
var splitted = jQuery(this.search_id).val().split(": ");
if (splitted[0] && splitted[1]){
if (string_to_scope[splitted[0]]) ret[string_to_scope[splitted[0]]] = splitted[1];
}
}
return ret;
};
감사합니다.
jQuery (this.search_id) .val()이 'Make : Toyota'를 어떻게 반환하는지 이해하지 못했습니다. 사용자가 수행 할 수있는 유일한 작업은 make로 검색하려는 경우 'Toyota'를 입력 필드에 입력하는 것입니다. val()은 사용자 입력 문자열 ('Toyota')을 가져 오지 않습니까? – JohnMerlino
그것은이 코드가 염두에두고있는 것처럼 보이지 않습니다. 검색은 사용자가 입력 한 검색 유형을 기반으로 쿼리를 작성하기 위해 string_to_scope 객체를 사용하여 { "make_name_eq": "Toyota"}와 같은 쿼리를 만들기 위해 사용자의 두 값을 사용합니다. 게시 한 코드는 확실히 콜론으로 구분 된 두 개의 값을 기대합니다. 작성된대로 사용자는 입력란에 "Make : Toyota"를 입력해야합니다.(콜론에서 분할 된 부분에 주목하고 결과 배열에 적어도 두 부분이 있는지 검사하는 if가 있습니다. 사용자가 "Toyota"를 입력하면이 코드는 아무 것도하지 않습니다.) –