所以,我在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
事件的结果。
如何摆脱它?
有什么建议吗?
由于
答案 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>