排除第一个字符串被附加到字符

时间:2014-05-24 08:10:48

标签: javascript jquery

FIDDLE Example

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

使用脚本我可以得到这个结果:

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

但是有没有办法让第一个与#34; |"所以网址应该是

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

我希望得到这个结果,因为http://web.com?get=|Africa|Asia|Europehttp://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>

5 个答案:

答案 0 :(得分:2)

最简单的方法是将所有国家/地区拉到数组并使用竖线字符连接它们。

var terms = $('.query').map( function() {
    return $(this).data('term');
}).get().join('|');

var source =  $('#main').data('source');

$('.result').html( source + terms );

Demo

答案 1 :(得分:2)

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

您只需将结果网址中的第一个'|'替换为空字符''

答案 2 :(得分:0)

简单使用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);
});

小提琴here

答案 3 :(得分:0)

使用if语句检查它是否是第一个&#39;数据 - 术语&#39;。如果是,那么不要使用|字符。然后在else语句中,你就像你已经完成的那样做了

答案 4 :(得分:0)

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);
   });
});

此时达到上一学期。在所有其他情况下,只会自动附加"" "|"