Как добавить атрибут и удалить атрибут с событием onchange?

У меня есть несколько выборок и вы хотите добавить или удалить атрибут имени в зависимости от параметра, выбранного при первом выборе.

Вот сценарий для примера:

http://jsfiddle.net/Nirvanachain/DZFFe/

4 ответа

У вас просто было несколько вещей назад, и вы забыли ".". в селекторе классов: $('.class'). Я исправил скрипку: http://jsfiddle.net/DZFFe/7/

$("#mySelect").change(function() { $(".selectorClass").removeAttr("name"); var x = document.getElementById("mySelect").value; if($("#" + x)) { $("#" + x).attr("name", "myName"); }
});


Это должно работать:

$("#mySelect").change(function() { var x = $(this).val(); if ($("#" + x).length > 0) { $("#" + x).attr("name", "myName"); } else { $(".selectorClass").removeAttr("name"); }
});​


Что-то вроде следующего?

$("#mySelect").change(function() { $('.selectorClass').removeAttr('name'); $('#' + $(this).val()).attr('name', 'myName');
});

http://jsfiddle.net/DZFFe/8/


были проблемы, когда !!x === false (ex: пустая строка в этом случае). Я добавил простую проверку if

Я также добавил, что отсутствует . выбрать по классу

$("#mySelect").change(function() { var x = document.getElementById("mySelect").value; if(x && $("#" + x)) { //added to check if x != "" $("#" + x).attr("name", "myName"); } else { $(".selectorClass").removeAttr("name"); //added missing "." to actually select classes }
});

Вот jsFiddle

licensed under cc by-sa 3.0 with attribution.