小弟想做一个下拉导航条,要求菜单子项的数据都是从数据库得到。效果就和
http://www.hoopchina.com/的导航栏的一样但是现在每次移动到上面都会不断的加。现在对JQuery还不熟练 望高手指点下小弟。提供方法或思路帮忙实现下这个功能..在此感激不尽
页面代码:<div id="menu">
<ul id="nav">
    <li class="jquery_out">
    <div class="jquery_inner">
    <div class="jquery">
        <span class="text">jquery</span><span class="smile">^_^</span>
    </div>
    </div>
    </li>
    
    <li class="mainlevel" id="mainlevel_01"><a href="http://www.lanrentuku.com/" target="_blank">试试看,有惊喜</a>
    <ul id="sub_01">
        <li><a href="http://www.lanrentuku.com/" target="_blank">北京</a></li>
        <li><a href="http://www.lanrentuku.com/" target="_blank">上海</a></li>
        <li><a href="http://www.lanrentuku.com/" target="_blank">浙江</a></li>
        <li><a href="http://www.lanrentuku.com/" target="_blank">湖南</a></li>
    </ul>
    </li>
    
    <li class="mainlevel" id="mainlevel_02"><a href="http://www.lanrentuku.com/" target="_blank">网络新词汇</a>
    <ul id="sub_02">
        <%--<li><a href="http://www.maitianquan.com/" target="_blank">晕哦!</a></li>
        <li><a href="http://www.maitianquan.com/" target="_blank">神马呀?</a></li>
        <li><a href="http://www.maitianquan.com/" target="_blank">Hold不住了!</a></li>
        <li><a href="http://www.maitianquan.com/" target="_blank">顶你肺啊!</a></li>
        <li><a href="http://www.maitianquan.com/" target="_blank">囧了。</a></li>
        <li><a href="http://www.maitianquan.com/" target="_blank">打酱油e....</a></li>--%>
    </ul>
    </li>
</ul>
</div>JS代码:$(document).ready(function () {
    $('li.mainlevel').mouseover(function () {
        var choose = this;
        //debugger;
        $.getJSON("../RequestHandler/NavigateHandler.ashx?divID=" + $(this).attr("id"), null, function (json) {
            $.each(json, function (i) {
                $("<li><a href=" + json[i].weburl + " id=" + json[i].webid + ">" + json[i].webname + "</a></li>").appendTo(choose.all[1]);//我这边的choose.all[1]为什么不能直接用this.children(ul)呢?对JQuery的this确实不怎么理解,这边高手能否阐述下概念
                //$("<li><a href=" + json[i].weburl + " id=" + json[i].webid + ">" + json[i].webname + "</a></li>").appendTo("#sub_01");
            });
        });
    });});有没有什么更好的获取子节点的方法呢?
 我QQ是490425093希望大侠都来相助

解决方案 »

  1.   


    太长了有没有什么更好的获取子节点的方法呢?——-----》$("#XXX").children();  这就是获取ID为XXX下的所有子节点
      

  2.   

    你在点击节点的时候给节点添加一个唯一的class标志,比如class="selected"
    然后追加的话可以直接$("节点").find("li").append("你的html代码")
      

  3.   

    在$.each( 这里面 this就变成each的这个对象了,跟var choose = this;这个this就不一样了,这个this是$('li.mainlevel').mouseover的this,就是$('li.mainlevel')的对象。至于重复加这个很好理解,你又没做判断又没清空,当然一直加上去了。推荐在添加之前先清空ul