jQuery推送逗号

时间:2016-02-08 23:35:42

标签: javascript jquery

所以,我在js中使用push推送对象。

我将此对象追加到html:

var top = [];

for (var i = 0; i < 1; i++) {                                                   
    var file= something[i];
    top.push(file);     
};

jQuery('.place').append(top);

我注意到file变量之间有一个逗号:

<div class="place"> 
   <div class="name">something</div>
   ,
   <div class="name">else</div> 
</div>

我猜这个逗号是push事件的结果。

如何摆脱它?

有什么建议吗?

由于

2 个答案:

答案 0 :(得分:3)

您正在将array个字符串传递给jQuery的append方法。只需先加入:

jQuery('.place').append(top.join(''));

当你在一个数组上调用toString()时(这是jQuery在尝试append一个字符串数组时所做的事情)它会将每个数组元素转换为一个字符串并在它们之间放一个逗号:

[1,2,3].toString(); //"1,2,3"
[{a:"b"},2,3].toString(); //"[object Object],2,3"

答案 1 :(得分:1)

首先,它看起来使用top作为变量名称存在问题,因此我将其更改为top1。

理论值: 根据{{​​3}},您可以传递一组DOM元素或String(或其他东西,但它们与问题无关)。您似乎传递了一个字符串数组,这不是DOM元素的数组,因此它被字符串化,并且数组的字符串化在元素之间有逗号。我很确定你们之前还有一个“[”和一个“]”。

实践:好吧,我似乎没有重现你的问题(至少在Chrome,FF,Safari中):

var top1 = [];

for (var i = 0; i < 2; i++) {                                                   
    var file = "<div>something[i]</div>";
    top1.push(file);     
}

$('#place').append(top1);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="place"> 
</div>