我有一个字符串数组,我想在ajax请求中追加到url。我需要将一些额外的字符串与数组字符串一起添加到Url中。
HTML
<ul>
<li data-url="string1"></li>
<li data-url="string2"></li>
<li data-url="string3"></li>
<li data-url="string4"></li>
<li data-url="string5"></li>
</ul>
到目前为止,在我的javascript中我有这样的事情:
的javascript
//create empty array
var data = [];
$('ul li').each(function(){
data.push(this.getAttribute('data-url'));
})
// now in data I have : ['string1','string2', 'string3' ..]
// here is where im lost
// how to concat those array items into the url with the '&' symbol
var url = 'www.foo.com/bar=' data + '&'
//Make an ajax request
$ajax({
url: url,
method: 'POST',
})
总的来说我希望网址看起来像这样:
www.foo.com/bar=string1&bar=string2&bar=string3
答案 0 :(得分:1)
你可以做这样简单的事情,
// using map iterate and get data value
var data = $('ul li').map(function() {
return 'bar=' + $(this).data('url');
// using data() you can get data attribute value
}).get().join('&');
// using get() you can get retuned value as an array
// joing the array using join()
var url = 'www.foo.com/' + data;
console.log(url);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<ul>
<li data-url="string1"></li>
<li data-url="string2"></li>
<li data-url="string3"></li>
<li data-url="string4"></li>
<li data-url="string5"></li>
</ul>
答案 1 :(得分:0)
为什么不尝试像
这样的替代品var data = "";
$('ul li').each(function(){
data += "bar="+this.getAttribute('data-url') + "&";
})
data = data.substring(0, data.length-1);
var url = 'www.foo.com/' + data;
//Make an ajax request
$ajax({
url: url,
method: 'POST',
})