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

时间:2011-12-23 16:34:16

标签: c# jquery asp.net 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();

1 个答案:

答案 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"))

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