遍历除最后一个元素之外的所有元素

时间:2014-10-02 07:44:46

标签: jquery

如何更改每个元素,但保留最后一个元素?

jQuery(".diaryevent .field-name-field-category .field-items .field-item a")
.each(function(e) 
{
  var text = jQuery(this).text();
  jQuery(this).html(text + ',');
});

我需要添加例如not(":last-child"):not(:last-child)

2 个答案:

答案 0 :(得分:6)

无需循环使用每个。使用右选择器,您可以选择除最后一个元素之外的所有元素。

jQuery(".field-name-field-category > .field-items > .field-item:not(:last) > a")
.text(function(_, text) {
  return text + ',';
});
/* Just to see the commas better :) */
a { text-decoration:none;color:#333; }
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<div class="field field-name-field-category field-type-taxonomy-term-reference field-label-hidden">
  <div class="field-items">
    <div class="field-item even"><a href="/category/business" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">Business</a>
    </div>
    <div class="field-item odd"><a href="/category/code" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">Code</a>
    </div>
    <div class="field-item even"><a href="/category/training" typeof="skos:Concept" property="rdfs:label skos:prefLabel" datatype="">Training</a>
    </div>
  </div>
</div>

答案 1 :(得分:0)

根据api,jQuery每个函数的第一个参数是数组的索引..

你可以将它与数组的长度进行比较,以达到你想要的效果

var arr = jQuery(".diaryevent .field-name-field-category .field-items .field-item a");

arr.each(function(e) 
{
  if(e === arr.length-1) {
      return;
  }
  var text = jQuery(this).text();
  jQuery(this).html(text + ',');
});

小提琴:jsfiddle.net/Lgwtcdzs/1