如果条件与jquery

时间:2012-05-26 08:46:54

标签: jquery

在我的jQuery中,我从自动填充选定项目中获取学生详细信息,例如

var data = "<div class='close'><table><tr><td rowspan='4' width='50px;'>
     <img src='" + studentItem.Photo + "' Width='48' Height='48'  /></td><td>" + 
     studentItem.Name + " ( <span class='stuId'>" + studentItem.StudentId + 
     "</span> )</td><td align='right' ><div class='close16'/></td></tr><tr><td>
     <table cellpadding='0' cellspacing='0'><tr><td>" + studentItem.Email +
     "</td><td>&nbsp;|&nbsp;</td><td>" + studentItem.Mobile + "</td></tr></table>
     </td></tr></table></td></tr></table></div>";

并将此data绑定到div标签,如

$("#students").append(data);

这里的问题是我可以一次又一次地得到同一个学生,我可以一次又一次地将相同的数据绑定到这个div标签中。

所以为了限制这个,我试着在data之前设置条件,

if (!$('.stuId').is(studentItem.StudentId)) {
   var data=..........
}
else{
  alert('Duplicate data');
}

但即使学生已经在div中,它也会进入禁区。我怎么能解决这个问题,任何人都可以帮助我

1 个答案:

答案 0 :(得分:3)

由于我们不知道您拥有哪种StudentId,我们可以使用filter(但在某些情况下,:contains可能就足够了):

var len = $('.stuId').filter(function() {
    return this.innerHTML == studentItem.StudentId;
}).length;

if (len == 0) {
    var data = ..........
} else {
    alert('Duplicate data');
}​

它将选择所有.stuId元素并过滤重复项。