2017-06-02 118 views
2

好了,所以我有這個塊的代碼:刷新一個div容器使用jQuery

<div class="tags-column" id="tags"> 

     <h2>Tags</h2> 
     <ul> 
     <% @presenter.tag_counters.each do |tag_counter| %> 
      <li class="<%= tag_counter.tag %>"> 
      <%= link_to case_snitches_path(@project, tags: tag_counter.tag), { class: (params[:tags] == tag_counter.tag ? "active tag" : "tag")} do %> 
       <span class="tag-name"><%= tag_counter.tag %></span> 
       <span class="tag-counts"> 
       <%= tag_count(tag_counter, :pending) %> 
       <%= tag_count(tag_counter, :missing) %> 
       <%= tag_count(tag_counter, :reporting) %> 
       </span> 
      <% end %> 
      </li> 
     <% end %> 
     </ul> 
    </div> 

頁面本身遠大於此。但使用JQuery我只想在某些事件上更新這部分。我似乎無法爲這個問題找到合適的答案。這是當前JS我使用的是不工作:

$(".tags-column").load(document.URL + " .tags-column") 

如果我這樣做,它只是複製div和螺絲的一切行動。

+0

你有一個以上的類'的標籤,column'的HTML? – charlietfl

回答

0

你想要做的是重新呈現頁面,就像第一次加載頁面時那樣,這對於JavaScript來說是不可能的。你需要做的是加載你想要加載的文件的內容,然後刪除舊的內容。你可以處理它,只顯示你想要的內容。

所以首先獲得URL的內容並把它在這樣一個新的div:

$(".NEW-tags-column").load("yourfile.html"); 

記住負載的功能放置文件的內容中選擇$(".tags-column")。我不明白你爲什麼在這裏添加選擇器到文件load(document.URL + " .tags-column")

然後取出<div>的舊內容:

$(".tags-column").remove(); 

這樣,您將更新您的內容。下面的代碼

+0

*「不明白爲什麼添加了選擇器」* ...因爲'load()'只允許通過在url參數中添加空格後加載選擇器來加載頁面片段。請參閱文檔 – charlietfl

0

使用更新的div

$(".tags-column").html("some HTML contents"); 

$("#tags").html("some HTML contents");