Как проверить, существует ли атрибут перед его удалением - PullRequest
1 голос
/ 23 декабря 2011

Я получаю сообщение об ошибке object property doesn't support this method при попытке удалить атрибут при загрузке страницы.

Однако я считаю, что это происходит потому, что отключенный атрибут никогда не добавлялся при загрузке страницы, потому чтоне получаю ошибку после добавления атрибута.

Мой вопрос: как я могу проверить, существует ли атрибут, прежде чем пытаться его удалить?

Спасибо

 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 Ответ

5 голосов
/ 23 декабря 2011

Вы можете использовать метод .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"))

EDIT: исправлена ​​синтаксическая ошибка для комментария Эндрю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...