2015-07-16 2 views
2

Я динамически создаю список выбора, используя Javascript. Он работает, но я столкнулся с трудностями при попытке отключить некоторые параметры. Код ниже. Линия opt.prop генерирует ошибку opt.prop is not a function. Я также пробовал attr('disabled', 'disabled') и получил opt.attr не является функцией.Javascript opt.prop не является функцией

var selSubCat = document.getElementById('selectedSubCategory'); 
for(var i = 0; i < categories.length; i++) { 
    var opt = document.createElement('option'); 
    opt.innerHTML = categories[i]['name'] + ' (' + categories[i]['q_count'] + ' items)'; 
    opt.value = categories[i]['id']; 
    if (categories[i]['q_count'] < 1) 
     opt.prop('disabled', true); 
    selSubCat.appendChild(opt); 
} 

ответ

3

Вы не используете jquery на всех, но DOM methods. Тогда вам нужно изменить:

opt.prop('disabled', true); 

по

opt.setAttribute('disabled', true); 
1

Посмотрите на w3c в опции <> элемент, так что на самом деле то, что вы создаете с помощью document.createElement ('option'); - http://www.w3schools.com/tags/tag_option.asp

Если вы посмотрите на перечисленных атрибутов вы заметите нет «подпирать» атрибут или метод, и вы не создали пользовательский атрибут либо под названием проп. Это то, что консоль браузера пытается рассказать вам, когда говорит: «opt.prop не является функцией».

То, что я считаю, вы на самом деле пытаетесь сделать, это установить его«заблокировано» атрибут, который, как показано в w3c документации существует «истина», которая будет однако, также вызывают у вас проблемы поскольку документация показывает, что атрибут «disabled» принимает только одно значение «отключено».

Для того, чтобы установить атрибут, просто использовать экземпляр элемента, в вашем случае «отказа» и ссылаться на это SetAttribute метод, например, opt.setAttribute («отключено», «отключено»);

Если вы пытаетесь сделать что-то совершенно другое такое, как создать атрибут данных пользовательских HTML, который является частью спецификации HTML5, то, пожалуйста, уточнить ваши намерения в вашем вопросе, и я был бы рад помочь: D

Смежные вопросы