我正在建立一个网站,我有一个包含一些列表元素的未排序列表。当我点击其中一些列表项时,我希望<body>
的ID从id="index"
更改为id="collection"
。
最有效的方法是什么?
{% block %}
中,并在点击特殊列表项时覆盖它吗?答案 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";