我有一个相当奇怪的问题。我有一个字符串格式的html代码数组,我想连接在一起并插入到我页面上的现有元素中。
数组看起来像这样:
var sample_array = ['<div class="cld-event"><div class="cld-time">12:00</div><div class="cld-description">Some blabla</div></div>', '<div class="cld-event"><div class="cld-time">15:00</div><div class="cld-description">Some blabla</div></div>', ...];
加入和插入数组时,如:
$(myelement).html(sample_array.join(''));
我奇怪地用逗号分隔各个html元素,我当然不想要。
只需在控制台中记录数组连接,也会返回以逗号分隔的元素。我已经尝试用其他字符串(例如''
)替换join方法中的'+'
参数,但它也没有帮助,它始终是显示的逗号。
我画了整个代码而且没有错误。有没有人遇到过这样的事情?我确定我在这里犯了一些非常明显和非常愚蠢的错误,但我无法弄明白。
答案 0 :(得分:0)
你确定你没有以某种方式包含逗号吗?比如添加一组额外的引号以便你只有一个数组元素?
因为唯一的原因是实际上你只加入一个只有一个元素的数组(所以不执行连接,所以忽略join('+'))
sample_array.length
的价值是多少?
你确定你的数组不是(注意开头的引号)
["'<div class="cld-event"><div class="cld-time">12:00</div><div class="cld-description">Some blabla</div></div>', '<div class="cld-event"><div class="cld-time">15:00</div><div class="cld-description">Some blabla</div></div>', ..."];
答案 1 :(得分:0)
就像你期望的那样适合我。介意一起快速jsfiddle?
但是,如果你在那里得到昏迷,你必须将它们放在你的原始数组中(你是否将其与其他东西分开,或者你是如何生成数组的?)。另一种可能性是你可能使用一个变量作为连接参数,它以某种方式得到一个错误的值。
您可能没有以逗号分隔的数组,但["<div></div>,<div></div>"]
看起来像一个包含2个元素的数组,但实际上并非如此。
答案 2 :(得分:0)
我自己就是这个问题。你问过这已经四年了,但也许像我这样的人会谷歌这个答案并节省一些时间。
我正在处理一个字符串,我split()
进入一个数组来修改某些部分,然后join()
将它转换回一个字符串。所以基本上,我从
var myNiftyStuff = 'My nifty stuff.';
myNiftyStuff = myNiftyStuff.split('');
在这里,myNiftyStuff
以字符串开头。 split()
然后将其更改为数组。
然后我想要处理的任何mod都发生在数组中。当我尝试加入我的阵列时,我正在呼叫
myNiftyStuff.join('');
由于join()
不具有破坏性,它只是自行返回而不是修改变量。但我没有意识到这一点,我的身体并没有。吠叫,代码中的任何内容都没有了。
然后,我通过jQuery将我的数组传递给页面(不确定jQ是否在这里很重要),它使用逗号将其呈现为连接字符串,这必须是默认行为。
我应该覆盖我的变量
myNiftyStuff = myNiftyStuff.join('');
现在myNiftyStuff
已更新为join()
的返回值。当我将它添加到页面时,它是一个连接的字符串,而在我通过数组之前没有意识到我没有保存我的join()
的结果。