jQuery基于对象查找和复选框

时间:2015-01-20 17:16:04

标签: javascript jquery

我有一个由PHP生成并呈现给页面以供jQuery使用的对象。该对象可以包含多个记录/值。该对象包含ID号和employeeID。

[

  {

  "intID": "202",

  "text": "Dav123"

 }


]

我正在尝试根据对象中的数据检查页面上的复选框。以下是复选框的示例:

<input type="checkbox" value="Dav123" intid="202" class="projectMember">

我正在尝试遍历该对象并检查intIDempID匹配页面上的复选框的所有框。

我尝试过这样的事情,但它不会检查任何事情。

jQuery.each(preload_presenters, function(i, val) {
  var intID = val.intID,
      empID = val.text;

      $('.projectMember').each(function(){
            if($(this).attr('intid') == intID && $(this).val() == empID) {
                $(this).prop('checked', true);  
            } 
      })
});

有任何更清洁/实用的方法来实现这一目标吗?

1 个答案:

答案 0 :(得分:2)

首先,intid不是复选框的标准属性,会使页面无效,这意味着您可能会获得一些奇怪的UI / JS行为。如果可以,请将其更改为使用data-*属性:

<input type="checkbox" value="Dav123" data-intid="202" class="projectMember">

然后在你的JS中你可以使用过滤器通过你得到的属性找到那个特定的元素:

jQuery.each(preload_presenters, function(i, val) {
    $('.projectMember').filter(function(){
        return this.value == val.text && $(this).data('intid') == val.intID;
    }).prop('checked', true);
});

Example fiddle