jQuery如何在删除之前检查属性是否存在

HEL*_*_ME 1 c# asp.net jquery attributes

我在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();
Run Code Online (Sandbox Code Playgroud)

Jos*_*kle 5

您可以使用该.hasAttribute方法

如果每个ADD和ADM节点都有多个,则必须测试每个节点:

$("#ctl00_ctl00_body_body_ddlPool option[value='ADD']").each(function(){
    if(this.hasAttribute("disabled"))
        this.removeAttribute("disabled");
});
Run Code Online (Sandbox Code Playgroud)

否则只测试实际节点

if($("#ctl00_ctl00_body_body_ddlPool option[value='ADD']")[0].hasAttribute("disabled"))
Run Code Online (Sandbox Code Playgroud)

编辑:每个安德鲁的评论修复语法错误.