Javascript 使表中的所有选定元素在特定条件下处于禁用状态

Javascript 使表中的所有选定元素在特定条件下处于禁用状态,javascript,jquery,html,Javascript,Jquery,Html,功能检查已分配(callno) { $.ajax({ url:'index.php?action=searchbookforassigningbarcode', 键入:“POST”, 数据类型:“JSON”, 数据:{callno:callno}, 成功:功能(数据){ if(数据长度) { 如果(数据[0]['DataAvail']!=0) { 用于(数据中的var i) { var issuehistory=数据[i]['issuehistory']; for(发行历史中的var j) {

功能检查已分配(callno)
{
$.ajax({
url:'index.php?action=searchbookforassigningbarcode',
键入:“POST”,
数据类型:“JSON”,
数据:{callno:callno},
成功:功能(数据){
if(数据长度)
{
如果(数据[0]['DataAvail']!=0)
{
用于(数据中的var i)
{ 
var issuehistory=数据[i]['issuehistory'];
for(发行历史中的var j)
{
$('.library\u info\u tbl')。查找('select')。每个(函数(){
var id=$(this.id);
if(id==issuehistory[j]['acquisitionno'])
{
$(this.prop(“disabled”,true);
}
});
}
}
}
}
}
});
}

...
...
选择DamagedLost
...
...     
选择DamagedLost
...
...

一种更简单的方法是首先映射一个
acquisitionno
数组,然后根据新数组中的值进行筛选选择

根据数据结构的外观,其外观如下所示:

var acquisitionno = data.map(e=> e.issuehistory.acquisitionno)
$('table select').prop('disabled', function(){
   return acquisitionno.includes(this.id)
})
以上假设数据结构如下所示:

[{
    issuehistory: {
      acquisitionno: 16
    }
  },
  {
    issuehistory: {
      acquisitionno: 17
    }
  }
]

更简单的方法是首先映射
acquisitionno
数组,然后根据新数组中的值进行筛选选择

根据数据结构的外观,其外观如下所示:

var acquisitionno = data.map(e=> e.issuehistory.acquisitionno)
$('table select').prop('disabled', function(){
   return acquisitionno.includes(this.id)
})
以上假设数据结构如下所示:

[{
    issuehistory: {
      acquisitionno: 16
    }
  },
  {
    issuehistory: {
      acquisitionno: 17
    }
  }
]

假设您的ID是唯一的,那么只需使用此逻辑即可

if ( data.issuehistory )
{
    data.issuehistory.forEach( function( issuehistory ){
        $( "#" + issuehistory[ "acquisitionno" ] ).prop("disabled", true);    
    });
}
演示

var数据={
“发行历史”:[{
“收购编号”:16,
},
{
“收购编号”:17,
}
]
};
if(数据发布历史){
data.issuehistory.forEach(函数(issuehistory){
$(“#”+issuehistory[“acquisitionno”]).prop(“disabled”,true);
});
}

选择DamagedLost
选择DamagedLost

假设您的ID是唯一的,那么只需使用此逻辑即可

if ( data.issuehistory )
{
    data.issuehistory.forEach( function( issuehistory ){
        $( "#" + issuehistory[ "acquisitionno" ] ).prop("disabled", true);    
    });
}
演示

var数据={
“发行历史”:[{
“收购编号”:16,
},
{
“收购编号”:17,
}
]
};
if(数据发布历史){
data.issuehistory.forEach(函数(issuehistory){
$(“#”+issuehistory[“acquisitionno”]).prop(“disabled”,true);
});
}

选择DamagedLost
选择DamagedLost


您可以共享
数据的结构吗?
?另外,您在浏览器控制台中看到了什么错误?根据定义,元素ID在页面中必须是唯一的。改用
数据-
属性。提供一个数据样本,如“是”,它们已经是唯一的。好吧,在编辑之前,它们不是唯一的。再现问题的数据样本在哪里?您可以共享
数据的结构吗?
?另外,您在浏览器控制台中看到了什么错误?根据定义,元素ID在页面中必须是唯一的。改用
数据-
属性。提供一个数据样本,如“是”,它们已经是唯一的。好吧,在编辑之前,它们不是唯一的。重现问题的数据样本在哪里?@charlietfl是的,刚刚意识到。它没有生成所需的选择元素disabled@Nida它应该,检查演示。@Nida什么不起作用?我没有在我的帖子中分享一个工作演示吗?这段代码没有生成所需的select元素disabled@charlietfl是的,刚刚意识到。它并没有生成所需的选择元素disabled@Nida它应该,检查演示。@Nida什么不起作用?我没有在我的帖子中分享一个工作演示吗?这段代码没有禁用所需的select元素