0

我有一个如下的无序列表:

<ul>
    <li class="week6"></li>
    <li class="week6"></li>
    <li class="week6"></li>
    <li class="week6"></li>
    <li class="week6"></li>
</ul>

我想基于它的类在ul之前添加一个带有文本的标题元素。像这样:

<h1 class="week">Week 6</h1>
<ul>
    <li class="week6"></li>
    <li class="week6"></li>
    <li class="week6"></li>
    <li class="week6"></li>
    <li class="week6"></li>
</ul>

并且header元素里面的内容会基于class,比如class是“week6”那么h1就是“Week 6”,“week5”类会在h1里面输出“Week 5”。

现在,我遇到了在与该类有关的列表项的 ul 之前添加具有特定内容的 h1 标记的问题。

4

1 回答 1

3
$("ul").each(function(){
  var weeknum = $(this).children('li:first').prop('class');
  var weeknum = weeknum.match(/\d+/);
  /* Remove if first li is only a placeholder: $(this).children('li:first').remove(); */
  $(this).before('<h1 class="week">Week '+weeknum+'</h1>');
});

小提琴:http: //jsfiddle.net/TGmap/

于 2013-10-18T19:15:59.073 回答