0

我有一个搜索表单,可以显示与搜索过滤器匹配的人员列表。显示搜索结果后,我需要一个链接 (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>

非常感谢你的帮助!

4

3 回答 3

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"
        });
    });
});
于 2012-08-26T15:19:57.037 回答
0
var liste = "";
$(".name_for_mylist").each(function(){
  list += $(this).html() + "; ";
});

您声明了 liste 变量,并且您正在将 $(this).html() 添加到列表变量中。

尝试更改list+= $(this).html()+ ';';liste+= $(this).html()+ ';';

于 2012-08-26T15:14:41.773 回答
0

改变这个

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

对此

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

你可以把该死的放在 jquery 包装器中的任何东西附近。

大约一半通过你的javascript,

var liste = "";

“列表”末尾的额外“e”

于 2012-08-26T15:15:10.153 回答