使用jQuery插件获取无序列表的子元素

使用jQuery插件获取无序列表的子元素,jquery,Jquery,我试图通过附加到css菜单的jquery函数获取列表值 我的代码如下 $.fn.appmenu = function(options){ //problem $(this).click(function(){ alert($(this).filter("ul li").html()); }); $(this).hover(function(){ $(this).filter("li").animate({

我试图通过附加到css菜单的jquery函数获取列表值

我的代码如下

    $.fn.appmenu = function(options){

    //problem
    $(this).click(function(){
        alert($(this).filter("ul li").html());
    });

    $(this).hover(function(){
        $(this).filter("li").animate({
            top:"20px"
        });
    });

    //this.find('li:last').after("<li>test</li>");
    var lists = '<li title="Home" link="index.php"></li>';

    $.each(options, function(index, value) { 
        lists += '<li style="background-image:url(images/'+value[1]+'.png);" title="'+value[0]+'" link="'+value[1]+'"></li>';
    });

    return this.html("<ul>"+lists+"</ul>")
}

欢迎提供任何帮助。

您必须使用
find
而不是
filter
-
filter
正在从当前集合中查找元素,
find
正在从当前集合中的所有元素及其整个子元素中查找元素


但是,结果是相同的,因为
html
函数是从匹配元素中获取第一个元素中的整个html-在您的示例中,介于
  • 之间的html结构不正确。
  • 标记无效,jQuery不喜欢您的
    列表
    变量内容


    我把你的小提琴改了一点,但现在可以用了。请参阅。

    您也可以添加标记吗?
        //title, icon, link
    $("#app-menu").appmenu([
        ["add", "address", "#link1"],
        ["contact", "comment", "#link2"],
        ["about", "pencil", "#link3"]
    ]);