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

时间:2016-06-07 08:03:38

标签: javascript jquery jquery-selectors dom-manipulation

我根本不熟悉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

现在它做了什么它在单个标签中工作正常,但对其他标识没有任何作用。 这里的问题是:如何以相同的方式更改选择索引的所有元素

2 个答案:

答案 0 :(得分:11)

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

但是,正如所有评论中提到的那样,你应该真正切换到类。 ID并不打算在页面上多次使用。

答案 1 :(得分:-1)

如果你不能为这个元素添加类,但是目标元素的父类具有完全类,我建议:

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

或以丑陋的方式,你可以通过以下方式获得所有这些元素:

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