我正在学习如何将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|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>
答案 0 :(得分:2)
最简单的方法是将所有国家/地区拉到数组并使用竖线字符连接它们。
var terms = $('.query').map( function() {
return $(this).data('term');
}).get().join('|');
var source = $('#main').data('source');
$('.result').html( source + terms );
答案 1 :(得分:2)
您只需将结果网址中的第一个'|'
替换为空字符''
。
答案 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);
});
});
此时达到上一学期。在所有其他情况下,只会自动附加""
"|"
。