我有一个由PHP生成并呈现给页面以供jQuery使用的对象。该对象可以包含多个记录/值。该对象包含ID号和employeeID。
[
{
"intID": "202",
"text": "Dav123"
}
]
我正在尝试根据对象中的数据检查页面上的复选框。以下是复选框的示例:
<input type="checkbox" value="Dav123" intid="202" class="projectMember">
我正在尝试遍历该对象并检查intID
和empID
匹配页面上的复选框的所有框。
我尝试过这样的事情,但它不会检查任何事情。
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);
}
})
});
有任何更清洁/实用的方法来实现这一目标吗?
答案 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);
});