在if语句中使用数组数据

时间:2020-09-06 19:09:17

标签: javascript jquery

我正在尝试构建一个简单的项目,但是偶然发现了一个问题。我有一个看起来像这样的数组:

var myArray=[ 
    {          
        "Number": 23,
        "Name": "Jenny",
        "SubmissionNumber": "39",
        "photo": "photoJenny",
    },
    {          
        "Number": 3,
        "Name": "Kenny",
        "SubmissionNumber": "0",
        "photo": "photoKenny",
    },  
]

如果“ SubmissionNumber”等于0,我想使用if语句将类添加/删除到某个div元素,但是我不知道该怎么做。我尝试使用此方法,但是它不起作用:

if ($(myArray[i].SubmissionNumber == 0)) {
  $('#submissionNumber').removeClass('submissionReceived');
}

2 个答案:

答案 0 :(得分:0)

因为您使用了$(myArray[i].SubmissionNumber == 0)。但是$表示jQuery关键字,用于选择元素。 SubmissionNumber是字符串。您应该将字符串更改为int并将其与0进行比较。因此,我使用了parseInt javascript函数并将字符串转换为整数:

if (parseInt(myArray[i].SubmissionNumber) == 0)) {
  $('#submissionNumber').removeClass('submissionReceived');
}

我更改了显示项目的功能。

function dislayItems(){

    for(var i=0; i<myArray.length; i++){
    
        var items = $(`<section class="items">
    
    <figure>
     <div id="submissionRec${i}" class="received">
     <i class="rec_eived">received</i>
     </div>
        <img src="imgs/`+ myArray[i].photo +`.jpg" alt="" class="rounded"/>
       <figcaption>
       <p class=name>`+ myArray[i].Name +`</p>
            <p>`+ myArray[i].Number +`</p>
            <p>`+ myArray[i].SubmissionNumber +`</p>
        </figcaption>
    </figure>
    `);
    $('main').append(items);

    if( parseInt(myArray[i]["SubmissionNumber"]) == 0 ) {
    
        $('#submissionRec' + i).removeClass('received');
    
        }
    }
}

答案 1 :(得分:0)

这是您访问Javascript字段值的方式:

myArray[i]["SubmissionNumber"]

这是结果:

enter image description here

编辑:是的,myArray [i] .SubmissionNumber当然也可以。 关键问题是条件部分周围的jQuery $。

上面的字符串方法确实带来了一些好处-使用变量的能力。但是任何一种方法都可以。

关于HTML标记的命名,他必须将ID / NAME属性设置为“ SubmissionNumber”。