2016-06-07 6 views
0

Я вообще не знаком с JQuery, но мне было интересно, можно ли изменить все элементы с одним и тем же идентификатором на действия.Изменение нескольких элементов с одинаковым идентификатором

$(document).ready(function() { 
    document.getElementById("id_scheduled_time").disabled = true; 
    document.getElementById("id_scheduled_day").disabled = true; 
}); 

$('#id_schedule_type').on('change', function() { 
    if ($("#id_schedule_type").prop('selectedIndex') == 0) { 
     document.getElementById("id_scheduled_time").disabled = true; 
     document.getElementById("id_scheduled_day").disabled = true; 

    } 
    else { 
     document.getElementById("id_scheduled_time").disabled = false; 
     document.getElementById("id_scheduled_day").disabled = false; 
    }; 
}); 


$('#id_scheduled_period').on('change', function() { 
    if ($("#id_scheduled_period").prop('selectedIndex') == 2) { 
     $('#id_scheduled_minute').attr("placeholder","Insert number 1-15").val(""); 
    } else { 
     $('#id_scheduled_minute').attr("placeholder","Insert number 1-45").val(""); 
    }; 
}); 

Да, этот код выглядит как дерьмо, но он работает пока. Проблема для меня заключается в том, что есть несколько вкладок с полями выбора и полями ввода, все из которых имеют одинаковый идентификатор (например, id_scheduled_time)

Теперь, что он делает, что он отлично работает на одной вкладке, но ничего не делает для другие идентификаторы. Вопрос состоит в следующем: как изменить все элементы так же, как для индексов отбора

+9

Ваш вопрос является спорным, поскольку атрибуты 'id' * должны * быть уникальными в документе. Если вы хотите группировать элементы, используйте класс. –

+0

вы должны использовать класс вместо id, идентификатор должен быть уникальным. – talentedandrew

+0

Возможно, вы захотите использовать элементы с тем же 'class' вместо' id'. – Azamantes

ответ

10

Вместо того, чтобы выбрать элемент с $('#my-id'), вы могли бы использовать $('[id="my-id"]'), чтобы выбрать все из них.

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

0

Если вы не можете добавить класса к этим элементам, но целевые элементы имеют родитель с точным классом я предлагаю следующее:

$(".parentClassName:nth-child(3)") 
// The number 3 is a sample index of element inside its parent 

или уродливых, как вы можете получить все эти элементы с помощью:

$('[id="id_scheduled_time"]')