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

Я пытаюсь:

Просмотр страницы : <i id="{{obj.id}}"></i>

Контроллер

$(getJson.Id).removeClass('busy b-white bottom');

$(getJson.Id).addClass('on b-white bottom');

Итак, как я могу этого добиться?

1
Mitesh Machhi 29 Фев 2016 в 07:28

2 ответа

Лучший ответ

► Прежде всего, идентификатор должен быть уникальным.

Когда вы когда-либо используете идентификатор с тем же именем, попробуйте использовать вместо него class.

Ваше решение будет примерно таким

$('[id='+getJson.Id+']').removeClass('busy b-white bottom').addClass('on b-white bottom');

Это простой метод выбора всех элементов с одинаковым идентификатором.

$('[id=test]').removeClass('yellow').addClass('red')
.yellow{
  background-color:yellow;
}
.red{
  background-color:red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p id="test" class="yellow">q</p>
<p id="test" class="yellow">w</p>
<p id="test" class="yellow">e</p>
1
Rino Raj 29 Фев 2016 в 04:33

Как уже говорилось, идентификатор всегда должен быть уникальным , но если вы не хотите следовать совету, вы можете выбрать все сопоставленные идентификаторы с помощью селектора атрибутов ( не рекомендуется, поскольку идентификатор должен быть уникальным ):

$('[id='+getJson.Id+']').removeClass('busy b-white bottom');
$('[id='+getJson.Id+']').addClass('on b-white bottom');
0
Norlihazmey Ghazali 29 Фев 2016 в 04:35