【发布时间】:2015-08-02 00:15:01
【问题描述】:
我是 JQuery 的新手,遇到以下问题。
在一个页面中,我有 2 个由 2 个不同的 无序列表 实现的菜单,如下所示:
1) 菜单 1 具有 class="nav single-page-nav":
<ul class="nav single-page-nav">
<li>
<a href="http://localhost/onyx/#section-45">Chi siamo</a>
</li>
<li>
<a href="http://localhost/onyx/#section-27">Servizi</a>
</li>
<li>
<a href="http://localhost/onyx/#section-174">Aggiornamenti</a>
</li>
<li>
<a href="http://localhost/onyx/#section-121">Contattaci</a>
</li>
</ul>
2) 菜单 2 有 class=nav
<ul id="menu-language" class="nav">
<li id="menu-item-422" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-422">
<a href="http://localhost/onyx/prova/">prova cat</a>
</li>
<li id="menu-item-185" class="qtranxs-lang-menu qtranxs-lang-menu-it menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-185">
..............................
SOMETHING
..............................
</li>
</ul>
所以,出于某种原因,在我的页面中我需要 2 个菜单,但是当浏览器窗口很小时(主要是网站显示在智能手机中时),第二个菜单不显示(没关系),我需要将第二个菜单的 元素放入第一个菜单(在其元素之后)。
所以我做了这样的事情:
jQuery(document).ready(function($){
............................................
............................................
............................................
$(window).resize(function() {
//alert("INTO resize")
windowWidthResized = $(window).width();
//alert(windowWidthResized);
console.log("WINDOWS WIDTH: " + windowWidthResized);
menuItems = new Array();
menuItems = $('#menu-language > li');
console.log("NUMBER OF ITEMS IN SECOND MENU: " + menuItems.length);
/*
$('#menu-language > li').each(function() {
console.log($(this).html());
//alert($(this).html());
});
*/
if(windowWidthResized <= 986) {
console.log("INSERT MENU 2 ITEMS AT THE END OF MENU 1");
}
});
});
所以通过 resize() 方法,当浏览器窗口改变大小时,我会进行拦截,从而获得实际的窗口宽度。
然后,通过 $('#menu-language > li'),我检索到包含所有 的 menuItems 数组第二个菜单的元素(以及这些元素的 HTML 内容)。
现在,如果实际宽度小于 986 像素,我必须将作为 menuItems 数组元素检索到的元素 元素放在第一个元素的末尾菜单(具有 class="nav single-page-nav" 的 列表)
我该如何做最后一个操作?
【问题讨论】:
标签: javascript jquery html dom jquery-traversing