jQuery - 每个列表之前的每个列表中的每个列表

时间:2014-12-10 15:58:08

标签: javascript jquery html css

我有一项任务,所以我需要了解: 如果我有一个带有十六进制颜色的列表,我需要在标题之前添加作为此颜色的名称:

<ul attr="pa_varnish_color">
  <li>25acfa</li>
  <li>ffffff</li>
  <li>000000</li>
  <li>ffff05</li>
</ul>

然后我有:

<div class="plans-description">Blue</div>
<div class="plans-description">White</div>
<div class="plans-description">Black</div>
<div class="plans-description">Other</div>

李的数量当然等于<div class="plans-description">的数量。 所以我需要每个div都是前置每个li。像这样:

<ul attr="pa_varnish_color">
  <li>
    <div class="plans-description">Blue</div>
    25acfa
  </li>
  <li>
    <div class="plans-description">White</div>
    ffffff
  </li>
  <li>
    <div class="plans-description">Black</div>
    000000
  </li>
  <li>
    <div class="plans-description">Other</div>
    ffff05
  </li>
</ul>

2 个答案:

答案 0 :(得分:1)

var i=1;
$(".plans-description").each(function() {
  $("ul li:nth-child("+ i +")").prepend( $(this).clone(true));
  i++;
});

@Olli K: 实际上$ .each为你提供索引,所以你可以写:

$(".plans-description").each(function(i) {
  $("ul li:nth-child(" + (i + 1) + ")").prepend($(this).clone(true));
});

http://jsfiddle.net/washington_guedes/br1034r6/8/


答案 1 :(得分:-1)

var ARRAY_OF_COLORS = {"25acfa": "blue", .... };

$( "li" ).each(function( index ) {
      $(this).append("<div class='plans-description'>" + ARRAY_OF_COLORS[$(this).html()]+ "</div>");
    });