繁体   English   中英

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

[英]Insert “and” before the last element 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

我有一组键和值,以逗号分隔。 我想在最后一个选中的元素之前插入“和”并删除逗号。 请帮我解决这个问题。

我认为您可以通过添加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')

我解决了自己的问题。 我使用上述正则表达式将最后一个逗号替换为“和”。 感谢正则表达式!!!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM