1

我有这个UL/LI

用户将从菜单中选择它们,而我需要实现的是获取整个路线的文本行。例如First Level 2 - Second Level 1 - Third Level 1. 而且,与此同时,我想验证右侧没有更多选项。例如,如果用户单击First Level 2 - Second Level 1我想要做某事,以便让他知道之后有更多选择FL2 - SL1(一个带有 true 或 false 的 bool 变量将完成这项工作,我可以从那里得到一些警告)

我玩过 text 属性,但它不起作用,因为菜单是嵌套的,而不是在单级 UL 中。

任何想法将不胜感激。谢谢。

4

2 回答 2

1

而不是 li 的点击事件,我使用锚标记点击事件来获取路线并检查是否存在任何进一步的级别

http://jsfiddle.net/q6yDe/586/

于 2012-10-16T16:49:16.207 回答
1

我对解决方案的尝试可以在http://jsfiddle.net/KVs9C/找到。

$("#mylist a").click(function() {
    var path = "",
        moreChoices = $(this).next().size(); 

    console.log("More choices? " + !!moreChoices);

    $(this).parents("li").each(function() {
        path = $(this).find("a:first").text() + " - " + path;
    });
    console.log(path);
});

像 fuzionpro 一样,我建议您将点击侦听器添加到锚元素而不是 li 元素。可以通过遍历所有父 li 元素并在每个元素中附加第一个锚标记的文本来构造路径。当前路径以多余的破折号结束,应将其删除。

于 2012-10-16T18:57:28.690 回答