【问题标题】:Creating a new div for each element for two different arrays using JQuery使用 JQuery 为两个不同数组的每个元素创建一个新 div
【发布时间】:2017-10-12 06:09:55
【问题描述】:

我想创建一个带有图像和文本的对话框。我有一系列图像和名称。我想为每个图像和名称创建一个新的 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>

【问题讨论】:

  • 我很困惑。您希望最终消息包含 itemImages[i] 部分吗?还是您希望在打印到页面上之前将其替换?
  • 这里应该以单引号 "
    开头,最后一个双引号
    " 也应该是单引号。
  • 感谢您的帮助!是的,我希望最终消息包含存储在我的变量中的实际图像。我正在尝试迭代图像数组并将其显示在我的对话框中。我将双引号更改为单引号。现在我收到错误 - “未捕获的语法:意外的令牌类”,它指向我要创建的新 div “
    顺便说一句:我刚开始使用 StackOverflow,我非常感谢这个社区以及人们的回复速度。太棒了!

标签: javascript jquery html dialog jquery-ui-dialog


【解决方案1】:

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

<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>

【讨论】:

  • 谢谢!这行得通。我没有收到更多的语法错误。但是,我的图像和名称未显示在对话框中。当我检查 html 时,它显示了我在 标记中编写的代码,而不是为图像和名称创建新的 div。我做错了什么?
  • @C.Yee 更新了我的答案以使用内联脚本(除非有特定原因使用内联脚本标签,否则这通常是不受欢迎的)。在没有看到您的代码当前是如何编写的情况下,我只能猜测它为什么不起作用,因为它按上述预期工作。
  • 我明白了。感谢您的帮助!
猜你喜欢
  • 2021-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-06
  • 1970-01-01
  • 2022-11-17
  • 1970-01-01
相关资源
最近更新 更多