2017-10-26 2 views
-2

나는 AJAX 검색 필드를 만들었습니다. Ajax 검색 작업 및 항목이 성공적으로 추가되고 있습니다. 추가 된 검색 항목을 제거 할 때. 추가 된 검색 값을 클릭합니다. 그들을 배열로 변환하고 나서 배열에서 처리하고 일치하는 것을 제거합니다. 하지만 문제는 을 jQuery로 나누어 사용할 때입니다. 간단한 문자열을 배열로 변환하지 않습니다. 다음은 HTML입니다. jQuery의 .split()에서 문자열을 변환하지 않습니다.

$('.placeholder').on("click", "li", function() { 
 

 
    parent = jQuery('.supplier-ajax'); // Parent 
 
    id = jQuery(this).attr('id'); 
 
    slug = jQuery(this).attr('slug'); 
 
    supplierval = parent.find('#product_supplier').val(); 
 

 
    console.log(parent); 
 
    console.log('placeholderclick'); 
 
    console.log(slug); 
 
    console.log(id); 
 
    console.log(supplierval); 
 
    console.log(typeof supplierval) 
 

 

 
    supplierarray = $(supplierval).toString().split(","); 
 
    console.log(supplierarray); 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<span class="search-field supplier-ajax"> 
 
    \t <div class="placeholder"> 
 
    \t \t <input type="search" id="woocommerce-product-supplier-field" class="supplier-field field form-control valid" autocomplete="off" aria-invalid="false"> 
 
    \t \t <ul class="placeholder-items"> 
 
       <li class="supplier-ajax-placeholder" id="726" slug="bottle">Bottle</li> 
 
      </ul> 
 
    \t </div> 
 
    \t <i class="fa fa-search" aria-hidden="true"></i> 
 
    \t <div class="hidden" id="suggesstion-box"> 
 
    \t \t <ul> 
 
       <li id="726" slug="bottle">Bottle</li> 
 
       <li id="1011" slug="eurobottle">Eurobottle</li> 
 
       <li id="612" slug="bottle-promotions">Bottle Promotions</li> 
 
      </ul> 
 
    \t \t <i class="fa fa-circle-o-notch fa-spin fa-3x fa-fw hidden"></i> 
 
    \t </div> 
 
    \t <input type="hidden" id="supplier-nonce" name="" value="93b8e7346b"> 
 
    \t <input type="hidden" id="product_supplier" name="supplier" value="bottle"> 
 
    </span>

콘솔 출력

placeholderclick 
bottle 
726 
bottle 
string 
["[object Object]"]0: "[object Object]"length: 1__proto__: Array(0) 

다음은 supplierval 문자열은 여전히 ​​이 작동하지 않는 분할 대해서 typeof. 나는 .toString()을 supplierarray에서 제거하려고 시도했으나 .split(); 함수를 찾을 수 없습니다 오류가 발생했습니다. 나는 그 문제가 뭔지 모른다.

왜 단순한 문자열에서 작업이 분할되지 않습니다. 누가 typeof도 string입니다.

JSFIDDLE : https://jsfiddle.net/t3xn1v7m/

+0

돌출'supplierarray = supplierval.split (""); ' – Satpal

+0

Satpal 말한대로 예, 이유는 당신이로 텍스트를 저장하고있는을 문자열 변수를 생성 한 다음 해당 변수를 .toString()이 처리 할 수없는 JQuery 객체로 변환합니다. – delinear

+0

'왜 splitof는 단순한 문자열인데 typeof도 string이 아닙니다 .' - 간단한 문자열에서'split'을하지 않습니다. 간단한 문자열 인'supplierval'을 jQuery 객체로 래핑하고 있습니다. 더 이상 간단한 문자열이 아닙니다. – Nope

답변

2

당신은 $()를 사용하여 jQuery를 개체를 만든 다음 .toString()를 사용하여 문자열로 객체 변환된다.

그냥 사용.split()supplierval에 변수

supplierarray = supplierval.split(","); 
+0

이것은 효과가 있습니다. 고마워. 내 jquery 약한. $ 문자열을 객체로 변환하는 것을 알지 못했습니다. –