0

我以前问过这个,但没有得到答案。这一次,我将尝试更好地解释。

所以基本上,我正在从 Ergast API 加载一级方程式构造函数列表。因为 API 没有提供我想要的所有信息,比如构造函数的基础年数,所以我必须使用 jQuery 来添加它们。

HTML 标记非常简单。动态内容的标签,基础年份的空标签。

<div id="constructors" ng-repeat="constructor in constructors">
   <img src="img/flags/{{constructor.nationality}}.png" />
   <h2 id="constructor">{{constructor.name}}</h2>
   <h3 id"foundYear"></h3>
</div>

我知道如果只有一个元素,以下 jQuery 会起作用:

$(document).ready(function(){
  if ($('#constructor').is(":contains('McLaren')")) {
    $('#foundYear').append('1963');
  }
});

我真的不知道如何解决这个问题,因为我对 Javascript 还是很陌生。这是一张图片,可以真正了解我想要做什么。

在此处输入图像描述

4

2 回答 2

0

您不能使用 ng-if 将该信息放入您的重复中吗?

<div id="constructors" ng-repeat="constructor in constructors">
   <img src="img/flags/{{constructor.nationality}}.png" />
   <h2 id="constructor">{{constructor.name}}</h2>
   <h3 ng-if="constructor.name == 'McLaren'" id="foundYear">1963</h3>
</div>

或类似的东西。

您也可以使用名称作为 H3 的 ID 的一部分,然后直接访问该项目

<...id="foundYear-{{constructtor.name}}"....>

jQuery('#foundYear-McLaren').append...

如果你有很多年要投入各种项目,你真的应该在控制器中增加接收到的数据以添加一个年份字段,然后使用

{{constructor.year}}

它会填写任何有一年的人。

于 2014-09-09T17:49:35.033 回答
0
<div id="constructors" ng-repeat="constructor in constructors">
<div class="wrapper">
<img src="img/flags/{{constructor.nationality}}.png" />
<h2 class="constructor-name">{{constructor.name}}</h2>
<h3 class="foundYear"></h3>
</div>
</div>

$(document).ready(function(){
  $('#constructor .wrapper').each(function(){
    if($(this).find(.constructor-name).text() === "McLaren"){
        $(this).find('.foundYear').html('1963')
    }
    });
    });

请注意 - 1. 在循环内不要声明静态 ID。2. 不要使用追加,而是使用 .html()

于 2014-09-09T17:53:23.530 回答