我有一个搜索表单,可以显示与搜索过滤器匹配的人员列表。 显示搜索结果后,我想要一个链接(id = names_list),单击该链接会显示一个显示人名列表的对话框。
我不明白为什么这段代码不起作用:
<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>
非常感谢你的帮助!
答案 0 :(得分: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"
});
});
});
答案 1 :(得分:0)
var liste = "";
$(".name_for_mylist").each(function(){
list += $(this).html() + "; ";
});
你声明了liste变量,你将$(this).html()添加到列表变量。
尝试将list+= $(this).html()+ ';';
更改为liste+= $(this).html()+ ';';
答案 2 :(得分:0)
更改此
var box=list.dialog({ title: "Names list" });
到这个
var box=$(list).dialog({ title: "Names list" });
你可以在jquery包装器附近放任何东西。
大约一半的javascript,
var liste = "";
“list”末尾的额外“e”