Способы изменения атрибута id в html - PullRequest
4 голосов
/ 24 января 2011

Я создаю веб-сайт, и у меня есть несортированный список с некоторыми элементами списка. Когда я нажимаю на некоторые из этих элементов списка, я хочу, чтобы мой идентификатор <body> менялся с id="index" на id="collection".

Какой самый эффективный способ сделать это?

  1. Должен ли я использовать JavaScript?
  2. Должен ли я поместить весь код тела в {% block %} и переопределить его, когда я нажимаю на специальные элементы списка?
  3. Другой способ?

Ответы [ 5 ]

6 голосов
/ 24 января 2011

С точки зрения чисто JavaScript, самый простой и лучший способ изменить идентификатор тела -

document.body.id = "collection";

Однако вам лучше использовать класс, чтобы избежать возможного конфликта вашего идентификатора с любым другим идентификатором на странице. Присвоение идентификатору тела не кажется очень полезным, учитывая, что на странице есть только один элемент <body>, на который можно ссылаться через document.body в JavaScript и body в CSS.

Если вы хотите изменить элемент на странице без перезагрузки всей страницы, тогда JavaScript - ваш единственный вариант. Если изменение имеет жизненно важное значение для функциональности вашей страницы, вам также следует предоставить запасной вариант, отличный от JavaScript.

1 голос
/ 24 января 2011

Должен ли я использовать JavaScript?

Да, основываясь на знании того, что вы хотите, чтобы это произошло во время события щелчка.Самый эффективный способ будет

document.body.id = "collection";

, менее эффективный -

document.getElementById("index").id = "collection";
0 голосов
/ 24 января 2011

Я бы сделал это с помощью jQuery со строкой $('#index').attr('id', 'collection');.

0 голосов
/ 24 января 2011
document.getElementById( "index" ).id = "collection";
0 голосов
/ 24 января 2011

Зависит от того, что вы подразумеваете под «эффективным».Использование JavaScript означает, что id изменяется без повторного HTTP-запроса на ваш сервер, поэтому пользователю не нужно ждать перезагрузки страницы.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...