2016-03-14 89 views
0

我正在创建一个搜索建议,我想创建一个div,并把建议元素,如全名,图像和...在它。 所以我有一个空的div在我的HTML代码中,我的建议将被添加到它。追加jquery不工作

<input type="text" name="query" autocomplete="off" id="base_main_search_box"> 
<button type="button" value="" id="base_main_search_box_button"></button> 
<div id="main_searchSuggestion"> 

</div> 

我想在用户键入输入类型时出现搜索建议。 所以我创建jQuery函数。 我jQuery的功能是:

$('#base_main_search_box').keyup(function() { 
    $.ajax({url:'http://localhost:8000/search_suggestion/',success:function(result){ 
      $(addSuggestion).append('<div class="base_searchSuggestionItem">' + 
       '<img src="' + result.movie_images[i] + '" class="base_searchSuggestionItem_image">' + 
       '<div class="base_searchSuggestionItem_info">' + 
        '<p class="base_searchSuggestionItem_info_name">' + 
         '<a href="">' + 
          result.movie_names[0] + 
         '</a>' + 
         '(' + 
         result.movie_yearProduction[0] + 
         ')' + 
        '</p>' + 
        '<p class="base_searchSuggestionItem_info_description">' + 
         result.movie_descriptions[0] + 
        '</p>' + 
       '</div>' + 
      '</div>'); 
      console.log('final: '+addSuggestion.innerHTML); 
     } 
    }}); 
}); 

输出为:

"final: undefined" 

这是不正确的。

+2

你为什么要复杂化了这么多,当你可以建造起来的简单的方法?不要混合香草JavaScript和jQuery。 –

+0

你需要添加search_item到dom第一个 – gurvinder372

回答

0

由于每docs

.html()不用于XML文档,所以你需要设置或检查其HTML之前将其添加到DOM。

变化顺序如下

 $(addSuggestion).append(search_item); 
     $(search_item).html(
      div_innerHTML 
     ); 
     console.log('div_innerHTML: '+div_innerHTML); 
     console.log('search_item: '+$(search_item).innerHTML); 
+0

它不起作用 – hamid

+0

@hamid你是什么意思?它给了什么输出? – gurvinder372

+0

我想添加search_item作为孩子的addSuggestion。 – hamid