使用 JQuery 为两个不同数组的每个元素创建一个新的 div

Creating a new div for each element for two different arrays using JQuery

我想创建一个包含图像和文本的对话框。我有一系列图像和名称。我想为每个图像和名称创建一个新的 div。不确定我是否正确地迭代了项目以及这是否以及为什么这不起作用。现在,我遇到语法错误,当我 运行 这段代码时 'i' 是 undefined。任何指导将不胜感激。

var itemImages = ["image1", "image2", "image3"]
var itemNames = ["name1", "name2", "name3"]

var message = '<div class="box-cart-products">
<script>$(itemImages).each(function(i, e){$(".box-cart-
products").append("<div class="box-cart-product"><div class="box-cart-
product-image"><img src="'+itemImages[i]+'"/></div><div 
class="box-cart-product-name"><span>'+itemNames[i]+'</span></div>
</div>")})</script></div>'

$(message).dialog()

这是我的消息变量的细分。

<div class="box-cart-products">
 <script>
  $(itemImages).each(function(i, e){
   $(".box-cart-products").append(
    "<div class="box-cart-product">
      <div class="box-cart-product-image"><img src="'+itemImages[i]+'"/></div>
      <div class="box-cart-product-name"><span>'+itemNames[i]+'</span></div>
    </div>"
   )
  })
 </script>
</div>

我认为这个问题只与 '" 有关。确保当你必须混合和匹配它们时,使用一个 start/stop 你的字符串,另一个在字符串内(或者你可以转义字符,但我发现更难阅读)。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="box-cart-products"></div>

<script>
  var itemImages = ["image1", "image2", "image3"]
  var itemNames = ["name1", "name2", "name3"]

  $(itemImages).each(function(i, e) {
    $(".box-cart-products").append(
      '<div class="box-cart-product"> <div class="box-cart-product-image"><img src="' + itemImages[i] + '"/> </div> <div class="box-cart-product-name"> <span>' + itemNames[i] + '</span></div></div>'
    )
  })
</script>