0

使用以下代码(或不使用),我试图返回title所有项目的属性,只要该title属性不是NaN

我了解目前所有具有 title 属性的项目都将被退回。如何指定返回哪个?

function loadItems(id){
   itemPath = start.contains.models;
   for (var i = 0; i<itemPath.length; i++) {
      if(itemPath[i].attributes.id==id) {
         return itemPath[i].attributes.grades.models.map(function(g) {
            $('#foot').append(g.attributes.title);
         });
         }
      }
}
4

3 回答 3

2

在您只返回所有内容的循环之外,定义一个容器来保存有效项目(空数组)。当您遍历每个项目时,如果它包含标题属性并且标题符合您的条件,请将当前项目添加到您在循环之外创建的容器中。仅当物品符合您的需要时,才将其添加到您返回的容器中。

当您全部完成循环后,返回该容器,该容器现在应该只包含包含标题并匹配您的检查条件的项目。

因此,如下所示,在您的循环中,如果标题isNaN()将其添加到您的数组中以返回。

function loadItems(id){
  itemPath = start.contains.models;
  var returnMe = new Array();
  for (var i = 0; i<itemPath.length; i++) {
    if(itemPath[i].attributes.id==id) {
      itemPath[i].attributes.grades.models.map(
        function(g) {
          if(isNaN(g.attributes.title)){
            returnMe.push(g.attributes.title);
          }}
      );
    }
  }
  return returnMe;
}
于 2013-03-04T20:28:47.537 回答
0

像这样的东西??

function loadItems(id){
itemPath = start.contains.models;
for (var i = 0; i<itemPath.length; i++) {
  if(itemPath[i].attributes.id==id) {
     return itemPath[i].attributes.grades.models.map(function(g) {
      var_title = g.attributes.title;
      if(var_title=='My Title'){
        $('#foot').append(g.attributes.title);}
     });
     }
  }
}

萨卢多斯 ;)

于 2013-03-04T20:30:22.520 回答
0

也许这个?我肯定需要有关 itemPath 的更多信息。

function loadItems(id){
    $(itemPath).find("#"+id+"[title]").each(function () {
        $("#foot").append($(this).attr("title"));
    });
}
于 2013-03-04T20:33:08.447 回答