Javascript 使用.append构建复杂菜单

Javascript 使用.append构建复杂菜单,javascript,jquery,append,Javascript,Jquery,Append,为了构建一个可以通过隐藏/取消隐藏菜单项进行切换的菜单块,我使用了.append html。 代码思想是这样的: navigat += '<h3 class="infoH3"> <a id="' + menuID +'"' + ' href="javascript:slideMenu(\'' + menuSlider + '\');">' + menuName + '</

为了构建一个可以通过隐藏/取消隐藏菜单项进行切换的菜单块,我使用了.append html。 代码思想是这样的:

     navigat += '<h3 class="infoH3"> <a id="' + menuID +'"'
                     + ' href="javascript:slideMenu(\'' + menuSlider + '\');">'
                     +  menuName + '</a></h3>';

     navigat += '<div id="' + menuSlider + '" style="display:none">';
     navigat += '    <ul>';
     navigat += '       <li>aMenu1</li>'
     navigat += '       <li>aMenu2</li>'
     navigat += '       <li>aMenu3</li>'
     navigat += '    </ul>';
     navigat += '<!-- menuName Slider --></div>';
     $("#someElement").append (navigat);
这很好。。到目前为止

但关键是: 我使用JS读取所需的菜单项,例如“aMenu1”以及文件中的标题和/或链接信息,以构建所有这些,例如,“aMenu1”由一个复合体组成,$someElement.appendsomeString用于添加“someElement”

目前,我逐行构建这些html元素。也可以。。只要结果字符串具有开始和结束标记,例如aMenu2

从上面张贴的代码中可以看出,有一行代码。 附加-AFAIS-the.append是自动的????添加关闭语句的。 这打破了我对整个概念的理解!菜单部分不包括在“菜单滑动器”中


QQ:如何更改它-不必这样您可以更改您的方法来使用文档片段样式创建,如下所示:

var someElement = $("#someElement");
$('<h3 class="infoH3"></h3>').append($('<a />', 
     { 'id': menuID,
       'href': '#',
       click: function() { slideMenu(menuSlider); }
     })
 ).appendTo(someElement);

var div = $('<div />', { 'id': menuSlider, css: {display: 'none'} });
$('<ul />').append('<li>aMenu1</li>')
           .append('<li>aMenu2</li>')
           .append('<li>aMenu3</li>')
           .appendTo(div);
div.appendTo(someElement);
这是一种非常不同的方法,首先我们缓存$someElement对象,这样我们就不会重复搜索它。然后我们将创建一个对象,将链接放入其中,然后插入,然后将整个内容附加到某个元素。在最后一个例子中,它使用相同的方法创建,设置它的属性,然后创建菜单并将其附加到内部…然后将整个div也附加到someElement


顺便说一句,我不知道.slideMenu是如何工作的,但是通过$this.parent.next或给div一个类工作的事件处理程序也可以工作,并且您不需要传递slider参数的函数。

这似乎是关于JavaScript和jQuery的。相应地标记;如果我错了,请修复。你是说即使你的代码中没有结束符,它也会自动添加结束符吗?这可能不是问题所在,但在li项后缺少分号