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

时间:2017-04-17 05:47:45

标签: javascript jquery

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

我有一组用逗号分隔的键和值。我想插入&#34;和&#34;并删除最后一个选中元素之前的逗号。请帮我解决这个问题。

3 个答案:

答案 0 :(得分:0)

我认为您可以减少代码,可以选择在最后一个元素之前添加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);

答案 1 :(得分:0)

这是一种简单易用的形式。

(解决方案是一般的)

$(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>

答案 2 :(得分:0)

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

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