2012-12-04 96 views
1

我爲我的網站下載了一個livesearch javascript插件,它工作正常,但我需要一些幫助來修改它。JavaScript createElement

下面是代碼:

$.ajax({url: $('base').attr('href') + 'index.php?route=product/search/ajax&keyword=' + keywords, dataType: 'json', type: 'GET', success: function(result) { 
    if(result.length > 0) { 
     var eList = document.createElement('ul'); 
     eList.id = 'livesearch_search_results'; 
     var eListElem; 
     var eLink; 
     var eHref; 
     for(var i in result) { 
      eListElem = document.createElement('li'); 
      eLink = document.createElement('a'); 
      if(result[i].img != null) { 
       eImg = new Image(); 
       eImg.src = result[i].img; 
      } 
      else { 
       eImg = document.createElement('span'); 
       eImg.innerHTML = ' '; 
      } 
      eDiv = document.createElement('div'); 
      eLink.appendChild(document.createTextNode(result[i].name)); 
      if(typeof(result[i].href) != 'undefined') { 
       eHref = result[i].href; 
      } 
      else { 
       eHref = $('base').attr('href') + 'index.php?route=product/product&product_id=' + result[i].product_id + '&keyword=' + keywords; 
      } 
      eLink.href = eHref; 
      eDiv.appendChild(eLink); 
      eDiv.innerHTML = eDiv.innerHTML + result[i].desc; 
      eListElem.appendChild(eImg); 
      eListElem.appendChild(eDiv); 
      eListElem.appendChild(document.createElement('br')); 
      eListElem.setAttribute('rel', eHref); 
      $(eListElem).bind('click', function(){ 
       var gto = $(this).attr('rel'); 
       try { 
        if(gto != false && gto.length > 0) { 
         document.location = gto; 
        } 
       } 
       catch(e) {} 
      }); 
      eList.appendChild(eListElem); 
     } 
     if($('#livesearch_search_results').length > 0) { 
      $('#livesearch_search_results').remove(); 
     } 
     $('#search_menu').append(eList); 
    } 
}}); 

輸出是這樣的:

<li rel="http://url"><img src="http://url.jpg"> 
<div><a href="url">TITLE</a>Description</div> 
<br></li> 

有沒有什麼辦法的元素添加到標籤?就像這樣:

<li rel="http://url"> <span class="img_container"><img src="http://url.jpg"> </span> 
<div><a href="url">TITLE</a>Description</div> 
<br></li> 

我知道,我可以創建標記document.createElement('span'),但我不知道在這種情況下,究竟會。

回答

2

只需更換線路

eImg = new Image(); 
eImg.src = result[i].img; 

var eImg = document.createElement('span'); 
eImg.className = "img_container"; 
var img = new Image(); 
img.src = result[i].img; 
eImg.appendChild(img); 

順便說一句,該腳本作者忘了聲明變量eImg地方。我懷疑這是故意的。

+0

正是我需要的,感謝您的快速回復。 :) – Adrian