2011-03-09 40 views
1

我有一個數組,通過獲取div中所有鏈接的值創建一個數組,當我將這些值添加到textarea以將它們發送到我的服務器時,它只是拉最後一個,使用控制檯我注意到數組保存了所有的值,就像我設置它時的警報一樣,那麼我怎樣才能用逗號或其他東西將所有值連接成一個長字符串?這裏是我的代碼如何追加一個textarea值來運行一個數組

$(".populate").click(function(){ 
    var array = $.makeArray($('li.item-link a')); 
    jQuery.each(array, function(index, value) { 
    console.log("index", index, "value", value); 
    alert(value); 
    $("#CAT_Custom_196863").val(value); 
    }); 
}); 

任何任何想法?

一切順利 塔拉

+1

大量的優秀建議,我渴望稍後再嘗試!我會讓你知道:)謝謝! – 2011-03-09 16:57:24

回答

1

$("#CAT_Custom_196863").val(value);線設置整個值到最新value

而是使用類似:

$("#CAT_Custom_196863").val($("#CAT_Custom_196863").val() + ', ' + value); 
+0

在每次迭代中獲得'#CAT_Custom_196863'並創建一個jQuery對象是不必要的開銷。如果有很多鏈接,這可能非常緩慢 – Simeon 2011-03-09 11:47:47

+0

是的我同意它是,但它清楚地向操作顯示它在做什麼,我只是說要使用* *這樣的東西。在不瞭解OP使用情況的情況下,不可能知道實際上是否會對速度產生任何可察覺的影響。你的回答更準確,所以+1給你! – 2011-03-09 11:52:06

0

嘗試

$.map(arr, function(value, index) { 
    return arr.join(","); 
}); 

其餘邏輯

+0

[參考資料](http://api.jquery.com/jQuery.map/) – diEcho 2011-03-09 11:47:04

1

瓦爾方法替換當前值。試試這個:

$(".populate").click(function(){ 
    var array = $.makeArray($('li.item-link a')); 
    var newVal = ''; 
    jQuery.each(array, function(index, value) { 
    console.log("index", index, "value", value); 
    alert(value); 
    newVal += value + ','; // comma? 
    }); 

    // In order to skip the last comma, uncomment this line: 
    // if(newVal.length > 0) newVal = newVal.substr(0, newVal.length - 1); 

    $("#CAT_Custom_196863").val(newVal); 
}); 
+0

OP希望逗號分隔或者其他方式適當地調整'newVal + = value;'。 – 2011-03-09 11:54:36

+0

謝謝,你是對的!我錯過了他寫的「帶逗號」:) – Simeon 2011-03-09 14:07:52

1

您可以使用加入JavaScript數組的方法:

 
$("#CAT_Custom_196863").val($.MakeArray($('li.item-link a')).join(", ")); 

BTW布萊爾麥克米蘭是正確的,你設置的整個價值,而不是增加了。

相關問題