如何在html中更改id属性

时间:2011-01-24 17:11:20

标签: javascript html django

我正在建立一个网站,我有一个包含一些列表元素的未排序列表。当我点击其中一些列表项时,我希望<body>的ID从id="index"更改为id="collection"

最有效的方法是什么?

  1. 我应该使用JavaScript吗?
  2. 我应该将所有正文代码放在{% block %}中,并在点击特殊列表项时覆盖它吗?
  3. 另一种方式?

5 个答案:

答案 0 :(得分:6)

从纯粹的JavaScript persepctive,改变身体ID的最简单和最好的方法是

document.body.id = "collection";

但是,您最好使用课程以避免您的ID与页面中的任何其他ID发生任何潜在冲突。鉴于页面中只有一个<body>元素,并且可以通过JavaScript中的document.body和CSS中的body引用身体,因此为身体提供ID似乎并不十分有用。

如果您想更改页面中的元素而不重新加载整个页面,那么JavaScript是您唯一的选择。如果更改对页面功能至关重要,则还应提供非JavaScript后备。

答案 1 :(得分:1)

  

我应该使用JavaScript吗?

是的,基于您希望在点击事件期间发生这种情况的知识。最有效的方法是

document.body.id = "collection";

效率较低的方式

document.getElementById("index").id = "collection";

答案 2 :(得分:0)

取决于“高效”的含义。使用JavaScript意味着id在没有向服务器发出其他HTTP请求的情况下进行更改,因此用户无需等待页面重新加载。

但是,如果他们在点击其中一个列表项后重新访问或重新加载页面,则列表将返回到加载页面时的方式。这可能不适合您的背景。

答案 3 :(得分:0)

我会使用jQuery,行$('#index').attr('id', 'collection');

答案 4 :(得分:0)

document.getElementById( "index" ).id = "collection";