更改具有相同 ID 的多个元素

Changing multiple elements with same id

我完全不熟悉 JQuery,但我想知道是否可以在操作中更改具有相同 ID 的所有元素。

$(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(例如 id_scheduled_time

现在它做了什么,它在一个选项卡中工作正常,但对其他 id 没有任何作用。 这里的问题是:如何以相同的方式为选择索引

更改所有元素

您可以使用 $('[id="my-id"]') 来 select 所有元素,而不是 select 使用 $('#my-id') 元素。

但是,正如所有评论中提到的,您真的应该切换到 类。 ID 不能在一个页面上多次使用。

如果您不能将 class 添加到此元素,但目标元素的父元素具有确切的 class,我建议这样做:

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

或者以一种丑陋的方式,您可以通过以下方式获取所有这些元素:

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