Как добавить атрибут и удалить атрибут с событием 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.