2015-10-14 75 views
2

我有一個字符串數組,我想追加到ajax請求中的url。還有一些額外的字符串需要與數組字符串一起添加到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', 
}) 

總體來說,我想的URL看起來像這樣:

www.foo.com/bar=string1&bar=string2&bar=string3 
+1

那不是覆蓋以前的'bar'值?你是不是指'bar []'? – MinusFour

回答

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>

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', 
}) 
相關問題