【问题标题】:list in 5 columns with jQuery使用 jQuery 在 5 列中列出
【发布时间】:2013-06-26 16:49:41
【问题描述】:

我无法将 ul 列表分成 5 个部分。该列表类似于:

<ul class="designer-list">  
<li>7 title</li>
<li>alpha</li>
<li>charlie</li>
<li>charles</li>
<li>lima</li>
</ul>    

使用这个 jQuery,我将第一个字符放在顶部

$(document).ready(function(){

    var lastCharacter = '';
    var list = $('ul.designer-list li');

    list.each(function() {
        var $this = $(this);
        var firstCharacter = $this.text().trim().charAt(0);
        if(firstCharacter != lastCharacter) {

            $this.before('<li class="first-character"><span>'+firstCharacter+'</span></li>');

            lastCharacter = firstCharacter;
        }
    });
});

这使得: 7 7 标题 一个 α C 查理 查尔斯 大号 利马

效果很好,但我想将列表分成 5 列。如果我尝试类似:

 $this.before('</ul></li><li class="first-character"><span>'+firstCharacter+'</span><ul>');

浏览器关闭标签。有人有想法吗?

我想要以下输出:

7     E      K      S     W
List  List   List   List  List
A     F      L      T     X
List  List   List   List  List

【问题讨论】:

  • 你希望得到什么样的 html 结构?
  • 我认为这个问题/答案非常接近您想要实现的目标:stackoverflow.com/questions/9886676/… 主要问题还在于 html 部分无效,因为它以结束标记开头, jQuery 不太喜欢。

标签: jquery


【解决方案1】:

更新答案

查看DEMOhttp://jsfiddle.net/yeyene/2yg9e/4/

此演示将为 ul 中的所有列表创建第一个字符列表分隔器。

JQUERY

$(document).ready(function(){
    $('ul.designer-list').each(function() {    
        var lastCharacter = '';
        var list = $(this).find('li');
        
        var e = '';
        list.each(function() {
            var $this = $(this);
            var firstCharacter = $this.text().trim().charAt(0);
            
            if(firstCharacter != lastCharacter) {
                e ='<li class="first-character">'+firstCharacter+'</li>';
                
                // if you want new ul, use this
                /*e ='<ul><li class="first-character">'+firstCharacter+'</li><ul>';*/
                
                lastCharacter = firstCharacter;
                $this.before(e);
            }            
        });        
    });    
});

【讨论】:

  • 我需要在每个 li.first-character 之后添加一个结束 ul。所以我可以浮动这 5 ul,我有 5 cols。
  • 再检查一次,现在你得到了所有第一个字符的 5 个 ul 列表...jsfiddle.net/yeyene/2yg9e/3
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多