我在加载页面时尝试删除属性时收到错误object property doesn't support this method
。
但我相信这种情况正在发生,因为在页面加载时从未添加disabled属性,因为在添加属性后我没有收到错误。
我的问题是如何在尝试删除属性之前检查属性是否存在。
由于
if (jQuery.inArray($("select option:selected").val(), Codes) == -1) {
$(serviceSelector).hide();
$(LocationSelector).hide();
$("#ctl00_ctl00_body_body_ddlPool option['value=ADD']").removeAttr("disabled");
$("#ctl00_ctl00_body_body_ddlPool option['value=ADM']").removeAttr("disabled");
} else {
$(serviceSelector).show();
$(LocationSelector).show();
$("#ctl00_ctl00_body_body_ddlPool option[value=ADM]").attr("disabled", "disabled");
$("#ctl00_ctl00_body_body_ddlPool option[value=ADD]").attr("disabled", "disabled");
}
//$find(AcId).set_contextKey($(this).val());
}).change();
答案 0 :(得分:5)
您可以使用.hasAttribute
方法
如果每个ADD和ADM节点都有多个,则必须对每个节点进行测试:
$("#ctl00_ctl00_body_body_ddlPool option[value='ADD']").each(function(){
if(this.hasAttribute("disabled"))
this.removeAttribute("disabled");
});
否则只测试实际节点
if($("#ctl00_ctl00_body_body_ddlPool option[value='ADD']")[0].hasAttribute("disabled"))
编辑:修正每个安德鲁评论的语法错误。