2012-08-26 33 views
0

我有一個搜索表單,可以顯示匹配搜索過濾器的人員列表。 一旦顯示搜索結果,我想要一個鏈接(id = names_list),點擊後,顯示一個對話框,顯示人名列表。如何在對話框中顯示javascript變量?

我不明白爲什麼這個代碼不工作:

<a id="names_list" href="#">Names list</a> 

    {% for person in persons %} 
     <a class="name_for_mylist">{{ person | name }}</a> 
    {% endfor %} 

    <script>   
      $(document).ready(function()  
      { 
       $("#names_list").click(function(event){ 
        event.preventDefault(); 
        var list = ""; 
        $(".name_for_mylist").each(function(){ 
         list += $(this).html() + "; "; 
        }); 
        var box=list.dialog({ title: "Names list" }); 
        box.show(); 
       }); 
      }); 
    </script> 

非常感謝您的幫助!

+1

的jQuery UI的'.dialog()'函數已被應用到DOM的HTML元素,而不是一個字符串。 – Pointy

+0

感謝您的回覆,所以如何將這個列表變量傳遞給我的對話框內容? – Reveclair

+0

請參閱xdazz的答案以獲取示例。 – Pointy

回答

1

list的到底是一個字符串,它沒有方法.dialog

你應該做如下圖所示:

$(document).ready(function() { 
    $("#names_list").click(function (event) { 
     event.preventDefault(); 
     var list = ""; 
     $(".name_for_mylist").each(function() { 
      list += $(this).html() + "; "; 
     }); 
     $('<div>').html(list).appendTo('body').dialog({ 
      title: "Names list" 
     }); 
    }); 
}); 
+0

非常感謝! – Reveclair

0
var liste = ""; 
$(".name_for_mylist").each(function(){ 
    list += $(this).html() + "; "; 
}); 

我聲明瞭liste變量,並且你正在添加$(this).html()來列出變量。

嘗試改變list+= $(this).html()+ ';';liste+= $(this).html()+ ';';

+0

問題發佈後很快就修正了錯字。 – Pointy

0

改變這種

var box=list.dialog({ title: "Names list" }); 

這個

var box=$(list).dialog({ title: "Names list" }); 

你可以把該死的東西附近在jQuery的包裝。

關於通過你的JavaScript半路上,

var liste = ""; 

額外的 「E」 在 「名單」

+0

是的抱歉,但是在編寫堆棧溢出代碼時,我只是心不在焉( – Reveclair