我正在尝试从HTML中删除这些","
。我尝试了.replace(",", "")
,.join()
和其他方法,但没有成功。
这是我的代码:
var featuresArray = jQuery(".Features").siblings().children("p").text().replace(",", "").split("\n");
var boom = featuresArray.map(function (item, index) {
return '<li>'+item+'</li>';
});
var features = boom;
printWindow.document.write("<p class='product-attribute'>"+'Features: ' + '<ul class="product-attribute-details">' + features + "</ul></p>");
如何从UL中删除这些逗号?
答案 0 :(得分:3)
问题是因为您直接将数组与HTML字符串连接在一起。这样,它将调用toString()
。这实际上是在做.join(',')
。这就是为什么逗号出现在li
元素之间的原因,如您在基本示例中所见:
var foo = ['a', 'b', 'c'];
console.log(foo.toString());
要解决此问题,请在串联时手动在阵列上调用join('')
:
printWindow.document.write('<p class="product-attribute">Features: <ul class="product-attribute-details">' + features.join('') + '</ul></p>');
请注意,我在上一行中使引号一致,并且还删除了您在几个地方进行的不必要的串联
答案 1 :(得分:0)
在将数组写入HTML之前,在数组上使用.join('')
。
由于数组不是字符串,因此JS在将其与字符串连接时会调用该数组的默认.toString()
函数,这会导致多余的逗号出现在HTML中:
var ary = [ 1, 2, 3 ];
document.write( ary );
document.write('<br>');
document.write( ary.join( '' ) );