Javascript jQuery-在url中设置带括号的背景图像

Javascript jQuery-在url中设置带括号的背景图像,javascript,jquery,Javascript,Jquery,我正在基于一个名为result的数组创建元素,我想动态地为该数组中的每个项添加背景图像。问题是当前标记没有将url放在括号中,因此如果我的url有括号,则不会设置图像 如何更改标记以将result[I].logo中的url置于括号中,使其以文本字符串的形式读取我的变量 $(result).each(function (i, e) { var item = "<div style='background-image: url(" + result[i]

我正在基于一个名为
result
的数组创建元素,我想动态地为该数组中的每个
项添加背景图像。问题是当前标记没有将url放在括号中,因此如果我的url有括号,则不会设置图像

如何更改标记以将
result[I].logo中的url置于括号中,使其以文本字符串的形式读取我的变量

$(result).each(function (i, e) {
  var item =
    "<div style='background-image: url(" +
    result[i].logo +
    ");' background-color:" +
    result[i].color +
    "'></div>";
  $(item).appendTo(".list");
});
$(结果)。每个函数(即,e){
变量项=

“您有报价问题,可能打算使用特定于阵列的

因为它意味着迭代jQuery对象

我建议改为用引号将徽标括起来

$(".list").html(
   result
   .map(res => `<div style="background-image: url('${res.logo}'); background-color: ${res.color}"></div>`)
   .join("")
);
$(“.list”).html(
结果
.map(res=>``)
.join(“”)
);

要改进您的版本,请确保引号正确。我更喜欢在html属性周围加双引号

var项=

'您需要提供一个-包括两个
结果
的示例。但是,否则您的代码工作正常:因此取决于
.logo
的值。如果
控制台.log(结果[i]),您还需要做些什么
?如果徽标的url路径名中有括号,则不会设置背景图像。我需要更改标记,以便将url读取为url(“”),而不仅仅是url(),Ah-@N.K。有了这个,但编辑并删除了他们的答案:
背景图像:url(\“”+结果[I].logo+“\”;
您能解释一下为什么喜欢
$(arr,function()…
超过
$(arr)。每个(function()…
)都应该是等效的,而不是潜在的微优化(一种方式或另一种方式,不进行检查).在我看来和我的记忆中,是对jQuery对象进行迭代,而我从来没有使用过,是针对任何JS数组或对象的。也许现在你可以对数组或对象使用任何一个,但这确实令人困惑。谢谢,我一直在使用
$(arr)。每个(…
多年来,从来没有出现过问题,我为这个问题创建的小提琴工作得很好。再看一看jquery文档(如果有疑问,请检查文档…),它说明了
$。each()
函数与
$(选择器)不同。each()
,它专门用于在jQuery对象上进行迭代。-奇怪的是,当他们说自己不应该这样做时,它就可以工作了!我尽可能长时间地使用
arr.each
,并且永远不会使用
$。当JS有一个内置的迭代时,这里就不需要jQuery数组循环。我想我还是老派,还没有找到它我不喜欢这些新的js方法:)它只有10年——如果不是在IE6中,我不知道它是什么:D