如何切片数组并将其添加到字符串url?

时间:2015-10-14 16:09:08

标签: javascript jquery html

我有一个字符串数组,我想在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

2 个答案:

答案 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',
 })