如何将无序列表分成两部分
How to apart unordered list into 2 parts?
我有无序列表,我想在特定屏幕尺寸上分成 2 个部分,我尝试遵循 jQuery。
HTML 是:
<ul class="menu-primary">
<li class="menu-item">home</li>
<li class="menu-item">Products</li>
<li class="menu-item">Settings</li>
<li class="menu-item">Contact</li>
<li class="right search">
<form class="searchform search-form">
<input type="text">
</form>
</li>
</ul>
当视口小于 800px 时,我想将这个无序列表分成两部分,就像这样
<ul class="menu-primary">
<li class="menu-item">home</li>
<li class="menu-item">Products</li>
<li class="menu-item">Settings</li>
<li class="menu-item">Contact</li>
</ul>
<ul class="searchform-block">
<li class="right search">
<form class="searchform search-form">
<input type="text">
</form>
</li>
</ul>
所以我尝试了以下jQuery来这样做,但是存在一些问题。
j查询:
(function($){
function viewport() {
var e = window,
a = 'inner';
if (!('innerWidth' in window )) {
a = 'client';
e = document.documentElement || document.body;
}
return { width : e[ a+'Width' ] , height : e[ a+'Height' ] };
}
/**
* Responsive Navigation
*/
if ( viewport().width < '800' ) {
$( '.menu-primary li' ).each(function(i){
if ( $(this).hasClass('search') ) {
$(this).before('</ul><ul class="searchform-block">');
}
});
}
})(jQuery);
但是上面的jQuery的结果是完全出乎意料的。
<ul class="menu-primary">
...
<li class="menu-item">Contact</li>
<ul class="searchform-block"></ul>
<li class="right search">
<form class="searchform search-form">
<input type="text">
</form>
</li>
</ul>
注意:我也使用superfish.min.js作为菜单。
你正在做的事情是不正确的,因为jQuery试图纠正before函数中的html。你应该做的是在 ul.menu-primary 之后创建 ul tag 元素,并将 li.search 移动到第二个无序列表。喜欢这个:
var tmpLiEl=null;
$( '.menu-primary li' ).each(function(i){
if ( $(this).hasClass('search') ) {
tmpLiEl=$(this).detach();
}
});
$('.menu-primary').after('<ul class="searchform-block"></ul>');
tmpLiEl.appendTo('.searchform-block');
相关文章:
- 如何在Javascript中交换两个列表的子列表
- 使用Jquery比较Javascript中的两个列表/表
- 将列表拆分为两列.列表没有't具有块,但是需要在最接近的<p>标签
- 把绳子分成两部分
- 在Javascript中将数组分为两部分
- imacros提取两部分数据+连接常量保存到文件javascript
- 如何将无序列表分成两部分
- 使用 chui.js $.当有两个列表时,UI 可访问
- 如何使用 javascript 解析字符串并将其分成两部分的特殊字符
- 使用 javascript 在两个列表项之间插入下拉项
- 将页面分成两部分,并将两个部分滚动到相反的方向
- jQuery可排序与溢出:隐藏;在两个列表之间
- 遍历两个列表,从第一个列表中获取值,将它们添加到第二个列表中
- AngularUI:在应用过滤器的情况下正确更新两个列表之间的模型
- 检索两个列表,对值进行排序和比较,然后显示所有结果
- 从两个列表中列出一个列表
- 带有图像和边框的两列列表-旋转边框但不旋转图像
- react native:可选择的部分列表视图出现错误
- javascript将东西分成两部分保存在不同的位置
- 如何在MVC上的两个列表框之间移动项目-JQuery不起作用