在最后一个元素 jquery 之前插入"and"


var swTitle = {};
var favorite = [];
    $.each($("input[name='Title']:checked"), function() {
        favorite.push($(this).val());
        console.log($("input[name='Title']:checked"));
    });
    swTitle.domain = favorite;   
var List = {};
    for (var m = 0; m < favorite.length; m++) {
        var swTitleObj = [];
        $.each($('input[name="' + swTitle.domain[m] + '"]:checked'), function() {
            console.log(swTitle.domain[m]);
            swTitleObj.push($(this).attr("class"));
            console.log(swTitleObj);
        });
        List[swTitle.domain[m]] = swTitleObj;
    }
var swSkillData = " ";
    $.each(List, function(key, value) {
        console.log(key + ":" + value);
        swSkillData += '<li>' + key + '&nbsp' + ':' + '&#160' + value + '</li>';
    });
Output will be like:
  Fruits:Apple,Banana,Orange,Grapes
  I want my output be like:
  Fruits:Apple,Banana,Orange & Grapes

我有一系列由逗号隔开的键和值。我想插入"one_answers",然后在最后一个检查元素之前删除逗号。请帮助我解决这个问题。

我认为您可以减少代码,并在最后一个元素之前添加and,例如,

var inputs=$("input[name='Title']:checked"),
    len=inputs.length,
    swSkillData='',
    counter=0;// to get the last one
$.each(inputs, function() {
    sep=' , '; // add comma as separator
    if(counter++==len-1){ // if last element then add and
       sep =' and ';
    }
    swSkillData += '<li>' + this.value + // get value
            '&nbsp' + ':' + '&#160' +
             this.className + // get classname
             sep + // adding separator here
             '</li>';
});

更新了,并提供了将,更改为&

的示例
$.each(List, function(key, value) {
    console.log(key + ":" + value);
    var pos = value.lastIndexOf(',');// get last comma index
    value = value.substring(0,pos)+' & '+value.substring(pos+1);
    swSkillData += '<li>' + key + '&nbsp' + ':' + '&#160' + value + '</li>';
});

代码

var value ='Apple,Banana,Orange,Grapes';var pos = value.lastIndexOf(',');// get last comma index
        value = value.substring(0,pos)+' & '+value.substring(pos+1);
console.log(value);

这是一种简单且可自定义的形式。

(解决方案是通用的(

$(document).ready(function() {
  var ara = ['Apple','Banana','Orange','Grapes'];
  displayAra(ara);
  function displayAra(x) {
    var str = '';
    for (var i = 0; i < x.length; i++) {
      if (i + 1 == x.length) {
        str = str.split('');
        str.pop();
        str = str.join('');
        str += ' and ' + x[i];
        console.log(str);
        $('.displayAra').text(str);
        break;
      }
      str += x[i] + ',';
    }
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Fruits :     <span class="displayAra"></span>

str = str.replace(/,(?=[^,]*$)/, 'and')

我解决了自己的问题。我使用上面的正则表达式替换了最后一个逗号。感谢Regex !!!

相关内容

最新更新