排除第一个字符串不追加到字符

exclude the first string from being appended to a character

本文关键字:字符 追加 第一个 字符串 排除      更新时间:2023-09-26

小提琴示例

我正在学习如何将div.query元素中的所有数据属性附加到 url 字符串中:http://web.com?get=

使用脚本,我可以得到以下结果:

"http://web.com?get=|Africa|Asia|Europe"

但是有没有办法不让第一个与"|"结合,以便 url 应该是

"http://web.com?get=Africa|Asia|Europe"

我想得到这个结果,因为要么http://web.com?get=|Africa|Asia|Europe否则http://web.com?get=Africa|Asia|Europe|无效。有什么建议吗?

.JS:

  $( document ).ready(function() {
   $(".query").each(function() { 
     var div_terms  =  $(this).data('term'),
     source =  $('#main').data('source');
       var x = source+'|'+div_terms;
       $('#main').data('source',x);
     $('.result').html(x);
   });
});

.HTML:

<div id="main" data-source="http://web.com?get="></div>
<div class="query" data-term="Africa"></div>
<div class="query" data-term="Asia"></div>
<div class="query" data-term="Europe"></div>
<div class="result"></div>

最简单的方法是将所有国家/地区拉到一个数组中,并使用管道字符将它们连接起来。

var terms = $('.query').map( function() {
    return $(this).data('term');
}).get().join('|');
var source =  $('#main').data('source');
$('.result').html( source + terms );

演示

> http://jsfiddle.net/cHtT6/3/

您只需要将生成的 url 中的第一个'|'替换为空字符 ''

使用javascript join函数使其简单化

  $( document ).ready(function() {
      var terms=[];
   $(".query").each(function() { 
     var div_terms  =  $(this).data('term');
       terms.push(div_terms);
   });
      var x = $('#main').data('source')+terms.join("|");
     $('.result').html(x);
});

在这里摆弄

使用 if 语句检查它是否是第一个"数据术语"。如果是,则不要使用 |字符。然后在 else 语句中,您只需按照已经完成的操作

DEMO

只需检查是否像这样到达终点:

$( document ).ready(function() {
    var i=0;
   $(".query").each(function() { 
       i++;
       var div_terms  = i==$(".query").length? $(this).data('term')+"":$(this).data('term')+"|",
     source =  $('#main').data('source');
       var x = source+''+div_terms;
       $('#main').data('source',x);
     $('.result').html(x);
   });
});

在这里,当达到最后一个学期时。在所有其他情况下,自动仅追加"" "|"追加。