我有一个包含多个<div>
和<p>
的html页面,我会为每个页面分配一个数字标识符渐进式。我希望这可以在JavaScript中完成。
我是这样做的,但我不知道它是否正确。还有更好的方法吗?谢谢
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<script>
var id = -1;
function createId() {
return id++;
}
</script>
</head>
<body>
<div id = "createId();">
createId();
<h1 id = "createId();">CHAPTER I</h1>
<h2 id = "createId();">Down the Rabbit-Hole</h2>
<div id = "createId();"></div>
<p id = "createId();"><strong>Alice</strong> was beginning to get very tired of sitting by her sister on the bank, and of having nothing to do: once or twice she had peeped into the book her sister was reading, but it had no pictures or conversations in it,<i> 'and what is the use of a book,'</i> thought Alice<i> 'without pictures or conversations?’.</i></p>
<p id = "createId();">So she was considering in her own mind (as well as she could, for the hot day made her feel very sleepy and stupid), whether the pleasure of making a daisy-chain would be worth the trouble of getting up and picking the daisies, when suddenly a <strong>White Rabbit</strong> with pink eyes ran close by her.
There was nothing so very remarkable in that; nor did Alice think it so very much out of the way to hear the Rabbit say to itself, <i>'Oh dear! Oh dear! I shall be late!'</i> (when she thought it over afterwards, it occurred to her that she ought to have wondered at this, but at the time it all seemed quite natural). But when the <strong>Rabbit</strong> actually took a watch out of its waistcoat-pocket, and looked at it, and then hurried on, <strong>Alice</strong> started to her feet, for it flashed across her mind that she had never before seen a rabbit with either a waistcoat-pocket, or a watch to take out of it, and burning with curiosity, she ran across the field after it, and fortunately was just in time to see it pop down a large rabbit-hole under the hedge.</p>
</div>
</body>
答案 0 :(得分:1)
嵌入Javascript是HTML通常是一个坏主意,尝试将它们分开。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<script src="/js/your-script-file.js">/script>
</head>
<body>
<div>
<h1>CHAPTER I</h1>
<h2>Down the Rabbit-Hole</h2>
<div></div>
<p><strong>Alice</strong> was beginning to get very tired of sitting by her sister on the bank, and of having nothing to do: once or twice she had peeped into the book her sister was reading, but it had no pictures or conversations in it,<i> 'and what is the use of a book,'</i> thought Alice<i> 'without pictures or conversations?’.</i></p>
<p>So she was considering in her own mind (as well as she could, for the hot day made her feel very sleepy and stupid), whether the pleasure of making a daisy-chain would be worth the trouble of getting up and picking the daisies, when suddenly a <strong>White Rabbit</strong> with pink eyes ran close by her.
There was nothing so very remarkable in that; nor did Alice think it so very much out of the way to hear the Rabbit say to itself, <i>'Oh dear! Oh dear! I shall be late!'</i> (when she thought it over afterwards, it occurred to her that she ought to have wondered at this, but at the time it all seemed quite natural). But when the <strong>Rabbit</strong> actually took a watch out of its waistcoat-pocket, and looked at it, and then hurried on, <strong>Alice</strong> started to her feet, for it flashed across her mind that she had never before seen a rabbit with either a waistcoat-pocket, or a watch to take out of it, and burning with curiosity, she ran across the field after it, and fortunately was just in time to see it pop down a large rabbit-hole under the hedge.</p>
</div>
</body>
然后为每个节点添加一个id。
function addIds() {
var nodes = document.body.getElementsByTagName('*');
var id = 1;
for( var i = 0; i < nodes.length; i++ ) {
nodes[i].id = 'unique' + id++
}
}
addIds();
为什么前缀机智独特?
ID和NAME令牌必须以字母([A-Za-z])开头,可能是 后跟任意数量的字母,数字([0-9]),连字符(&#34; - &#34;), 下划线(&#34; _&#34;),冒号(&#34;:&#34;)和句号(&#34;。&#34;)。
答案 1 :(得分:0)
您不必每次都输出该函数,而只需创建一个window.onload
函数。
window.document.onload = function(e) {
var all = document.getElementsByTagName("*");
var i = -1;
for(var x = 0; x <= all.length; x++) {
// test the tag - what types need to be assigned an id?
if (elem.tagName != "DIV" && elem.tagName != "P") continue;
i++;
all[x].setAttribute("id", i);
}
}
答案 2 :(得分:0)
一种方式:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<script>
var id = -1;
function createId() {
return id++;
}
</script>
</head>
<body>
<script>
var text=
' <div id = "createId();">\n'+
' createId();\n'+
' <h1 id = "createId();">CHAPTER I</h1>\n'+
' <h2 id = "createId();">Down the Rabbit-Hole</h2>\n'+
' <div id = "createId();"></div>\n'+
' <p id = "createId();"><strong>Alice</strong> was beginning to get very tired of sitting by her sister on the bank, and of having nothing to do: once or twice she had peeped into the book her sister was reading, but it had no pictures or conversations in it,<i> \'and what is the use of a book,\'</i> thought Alice<i> \'without pictures or conversations?’.</i></p>\n'+
'\n'+
' <p id = "createId();">So she was considering in her own mind (as well as she could, for the hot day made her feel very sleepy and stupid), whether the pleasure of making a daisy-chain would be worth the trouble of getting up and picking the daisies, when suddenly a <strong>White Rabbit</strong> with pink eyes ran close by her.\n'+
' There was nothing so very remarkable in that; nor did Alice think it so very much out of the way to hear the Rabbit say to itself, <i>\'Oh dear! Oh dear! I shall be late!\'</i> (when she thought it over afterwards, it occurred to her that she ought to have wondered at this, but at the time it all seemed quite natural). But when the <strong>Rabbit</strong> actually took a watch out of its waistcoat-pocket, and looked at it, and then hurried on, <strong>Alice</strong> started to her feet, for it flashed across her mind that she had never before seen a rabbit with either a waistcoat-pocket, or a watch to take out of it, and burning with curiosity, she ran across the field after it, and fortunately was just in time to see it pop down a large rabbit-hole under the hedge.</p>\n'+
' </div>';
document.write(text.replace(/createId\(\);/g, createId));
</script>
</body>
</html>
我认为使用PHP会更好。