我试图用jQuery获取所有菜单和子菜单。 我有一些代码可以逐个获取主菜单,然后我尝试运行代码来获取每个菜单的子菜单。
我已经将它列在一起列出所有子菜单,但由于某种原因它将所有子菜单显示为单个链接。
您可以在页脚http://techno-rezef.xcore.co.il/index.php?route=product/category&path=20
上看到它这是我遇到了麻烦 - 编辑=工作代码=已解决
jQuery('.six.columns.column').each(function() { // Get each main menu
var currentCol = jQuery(this);
var niddle = jQuery(this).children('h3').text();
var getMainMenu = jQuery('#boss_menu > ul > li > a:contains("' + niddle + '")');
var fiveArow = 1;
// Get each sub menu
getMainMenu.parent('li').find('.dropdown > .option > ul > li > a > span').each(function() {
var subMenuURL = jQuery(this).parent('a').attr('href');
if (fiveArow <= 5) { // Get the first 5 menus for each category
addRow(subMenuURL, jQuery(this), currentCol);
fiveArow = fiveArow + 1;
}
});
});
function addRow(subMenuURL, listSubMenus, currentMenu) {
currentMenu.find('ul').append('<li><a href="' + subMenuURL + '">' + listSubMenus.text() + '</a></li>');
}
答案 0 :(得分:0)
它将它们全部显示为单个超链接,因为您正在此功能中进行所有收集。你应该服用
getSubMenusHTML += '<li><a href="' + subMenuURL + '">' + listSubMenus.text() + '</li></a>';
并将其放在一个单独的函数中。然后,在您的函数中,调用该函数。像这样:
jQuery('.six.columns.column').each(function() { // Get each main menu
var niddle = jQuery(this).children('h3').text();
var getMainMenu = jQuery('#boss_menu > ul > li > a:contains("' + niddle + '")');
// Get each sub menu
var listSubMenus = getMainMenu.parent('li').find('.option > ul > li > a > span');
var subMenuURL = listSubMenus.parent('a').attr('href');
addLink(subMenuURL, listSubMenus);
});
function addLink(subMenuURL,listSubMenus) {
getSubMenusHTML += '<li><a href="' + subMenuURL + '">' + listSubMenus.text() + '</a></li>';
}
这是未经测试的,但我很确定这会解决问题
编辑:另外,注意到您有<li><a></li></a>
。不确定它会引起什么问题,但你应该关闭之前的
<li><a></a></li>
编辑: 而不是:
getSubMenusHTML += '<li><a href="' + subMenuURL + '">' + listSubMenus.text() + '</a></li>';
执行:
getSubMenusHTML.append('<li><a href="' + subMenuURL + '">' + listSubMenus.text() + '</a></li>');
如果你要将这些项添加到ul,那么make getSubMenusHTML:
var getSubMenusHTML = $('#your_Ul_ID');
答案 1 :(得分:0)
解决。 为我要输出并修复它的每个子菜单添加了另一个循环。 现在它可以工作