【问题标题】:html list elements based on array length [closed]基于数组长度的html列表元素
【发布时间】:2015-10-01 00:17:08
【问题描述】:

我在后端有一组汽车,其长度是用户定义的。因此,如果用户选择 3 辆汽车,则数组中将包含 3 个元素。我想在列表中的 html 元素中显示汽车的某些方面。该数组是基于 javascript 的。

大意是这样的:

<ul class="cars">
   <li>
      <img src=car[0].imageUrl>
      <h3>#{car[0].name}</h3>
      <span id="brand">#{car[0].brand}</span>
      <p>#{car[0].desc}</p>
   </li>
    <!--->until car[car.length-1]<!--->
</ul>

我是新人,所以如果我没有解释清楚的话。我很抱歉,我会尽力澄清。

编辑:感谢所有反馈,最终使用 ng-repeat。我意识到有多种方法可以给这只猫剥皮。我的目标是得到多个答案。下次我知道要求一个特定的解决方案。

【问题讨论】:

  • 我认为您可能需要多阅读一些关于 Web 开发、教程、youtube 等的内容,并获得基本的工作知识。
  • 你应该把你的javascript代码包装在
  • 这只是html文件的一部分。它显示了我想要的信息,但我想知道是否有办法通过某种循环来做到这一点
  • 至少告诉我们那个模板是什么框架。该代码不仅仅是 HTML 和 JavaScript。
  • 我在用玉写作,我试图把它翻译回html。不确定我是否做到了 100% 准确

标签: javascript jquery html arrays angularjs


【解决方案1】:

使用角度完整的 html 语法,我假设您在控制器中有一个数组 $scope.cars

您可以使用ng-repeat 创建您的列表:

<ul class="cars">
   <li ng-repeat="car in cars">
      <img ng-src="car.imageUrl">
      <h3>{{car.name}}</h3>
      <span id="brand">{{car.brand}}</span>
      <p>{{car.desc}}</p>
   </li>   
</ul>

【讨论】:

  • 谢谢@charlietfl!像魅力一样工作
【解决方案2】:

我真的不想刻薄……但你离得太远了,甚至很难知道从哪里开始。这甚至不是 javascript 代码的执行方式。这些都不会运行,浏览器只会假设它是你想要显示的奇怪文本。

JS 不是你随便粘贴在 HTML 代码中的任何地方并像你拥有它一样输出的东西。它与 HTML(不是脚本语言)分开运行。而且我不知道你从哪里得到 #{} 的东西。这是对 CSS 样式的某种误解吗?

<ul id="cars"></ul>
<script>
    var car = [
        {imageUrl:'url1',name:'name1',brand:'brand1',desc:'desc1'},
        {imageUrl:'url2',name:'name2',brand:'brand2',desc:'desc2'},
        {imageUrl:'url3',name:'name3',brand:'brand3',desc:'desc3'},
        {imageUrl:'url4',name:'name4',brand:'brand4',desc:'desc4'}
    ]; // don't know where your array comes from, had to make my own

    var carsElem = document.getElementById('cars');
    var htmlOut = '';
    for (i=0; i<car.length; i++)
        htmlOut += '<li><img src="'+car[i].imageUrl+'"><h3>'+car[i].name+'</h3><span class="brand">'+car[i].brand+'</span><p>'+car[i].desc+'</p></li>';
    carsElem.innerHTML = htmlOut;
</script>

如您所见,这看起来 没有 像您所放的那样。你放的甚至不是任何形式的 HTML/JavaScript。如果您希望能够做这种事情,您将不得不从零开始,向“hello world”学习。

【讨论】:

  • 基于角度标签......这个答案是一个非常离谱的答案。 OP 的代码非常接近于一个可行的角度模板
  • 即使不是 Angular,jade 也是一个在节点服务器上以 javascript 运行的模板引擎
  • @charlietfl - 它也有一个 jQuery 标签……似乎没有多大意义。问题只是说他有一个 javascript 数组并希望将其放入 HTML 元素中,并被标记为显示在网站的“javascript”部分。第一次提到玉是在评论和我的回答之后。
  • 对不起,应该澄清一下代码 sn-p 来自我的 html 文件。感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 2017-12-27
  • 2010-11-28
  • 1970-01-01
  • 2018-08-13
  • 1970-01-01
  • 1970-01-01
  • 2021-03-08
  • 2022-01-10
相关资源
最近更新 更多