将渐进ID与html元素相关联

时间:2015-09-17 15:08:06

标签: javascript html

我有一个包含多个<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>

3 个答案:

答案 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会更好。