2016-10-05 11 views
0

<section>タグが複数あるページがありますが、それぞれのIDに一意のIDを割り当てることです。JavaScriptで複数のタグに固有のIDを設定する方法

<body> 
<button id="set" onclick="setIds()">SET</button> 
<div id="d1"> 
    <section>1</section> 
    <section>2</section> 
    <section>3</section> 
    <section>4</section> 
    <section>5</section> 
    <section>6</section> 
<div id="demo"></div> 
<script> 
var sec = document.getElementsByTagName('section'); 

    function setIds(){ 
    for(var i = 0; i < sec.length; i++){ 
     console.log(sec[i].id); 
     var secId = 0; 
     secId += 1; 
     sec[i].id = secId; 
    }} 
</script> 
</body> 

私はまだJavaScriptを学んでいるので、私はこのコードを使用してみました、それだけですべてのセクションで同じIDを追加します。どんな助けでも大いに感謝するでしょう。

答えて

3

それぞれのループをsecIdから0にリセットするためです。あなたはループの外でそれを宣言してのみ、各ループをインクリメントした場合、それは動作します:あなたは、あなたのforループでsecIdたびにリセットされ

var secId = 0; 
for(var i = 0; i < sec.length; i++){ 
    console.log(sec[i].id); 

    secId += 1; 
    sec[i].id = secId; 
} 
+1

yes、 'secId'は' i'と同じです。 –

+0

よかった、ありがとう。 –

1

。したがって、常に1になるでしょう。それをしないでください。実際には、あなたは配列インデックスを持っているので、secIdにさえいらっしゃいません。

sec[i].id = "section_" + i; 

それとも本当にはそれが1で開始する場合:

sec[i].id = "section_" + (i+1); 

私はちょうど番号を使用することがあるという理由だけでsection_の接頭辞を追加しましたので、あなたのループの中で、あなたは次のような何かを行うことができます同じようなことをしているコードが複数ある場合は衝突する可能性があります

+0

IDとIDのない最後のセクションだけを残したい場合はどうすればいいですか? –

+0

@ELS:1)なぜ地球上で問題になるのでしょうか?そして2)ちょうど最後のIDにIDを設定しないでください。最後のものをスキップするには 'i

+0

あなたのお時間をいただきありがとうございます。 –

1

この行をループ外に置く var secId = 0; は、looopを入力して変数を宣言し、addとadd(1)を設定して新しいセクションに設定するたびに発生します。

関連する問題