2016-11-20 1 views
0

javascriptを使用してdivs(1、2、3 ...)に番号を付けようとしています。javascript関数を使用した番号区切り

HTML:

<div id="anId(this)" class="nextClass"></div> 

Javascriptを:

function anId(elementthis) { 
var newId = 0; 
elementthis.setAttribute("id", newId++); 
} 

どのように私はこれが実際に動作させることができますか?

+1

あなたはid文字列にjavascript関数を入れません。 – Fallenreaper

答えて

0

親divでラップしてから、jsスクリプトを使用してツリーを実行し、divに番号を付けることができます。

コードは次のようになります:

var app = function() { 
 
    var wrapper = document.getElementById('wrapper').childNodes; 
 
    var id = 0 
 
    for (var i = 0; i < wrapper.length; i++) { 
 
    if (wrapper[i].nodeName === "DIV") { 
 
     wrapper[i].id = id; 
 
     id += 1; 
 
    } 
 
    } 
 
}();
<!DOCTYPE html> 
 
<html> 
 

 
<head> 
 
    <meta charset="UTF-8"> 
 
    <title></title> 
 
</head> 
 

 
<body> 
 
    <div id="wrapper"> 
 
    <div></div> 
 
    <div></div> 
 
    <div></div> 
 
    <div></div> 
 
    <div></div> 
 
    <div></div> 
 
    </div> 
 
</body> 
 

 
</html>

EDITは:上記のコード上で検査を実行し、あなたが探していた結果が表示されます。

+0

ありがとうございました。 – SCcode

1

あなたは、あなたのID変数の変更は、その中に保存されない他のグローバル変数を作成する必要がありますこのような何か、

<!DOCTYPE html> 
 
<html> 
 
<head> 
 
<meta charset="ISO-8859-1"> 
 
<title>Insert title here</title> 
 
    <script src="angular.min.js"></script> 
 
</head> 
 
<body> 
 

 
<form class="index-form" name="LoginForm"> 
 
    <div class="index-input" onclick="anId(this)">sdfs 
 
    </div> 
 
    <div class="index-input" onclick="anId(this)">sdfs 
 
    </div> 
 
    <div class="index-input" onclick="anId(this)">sdfsfd 
 
    </div> 
 
    <div class="index-input" onclick="anId(this)">adasd 
 
    </div> 
 
    <div class="index-input" onclick="anId(this)">asdasd 
 
    </div> 
 
</form> 
 
<script> 
 
var newId = 0; 
 
function anId(elementthis) { 
 
\t newId=++newId; 
 
\t elementthis.setAttribute("id", newId); 
 
\t } 
 
</script> 
 
</body> 
 
</html>

  • を試すことができます。
  • また、関数内の変数を代入して、各divの変数の増加を確認する必要があります。
+0

しかし、IDを割り当てるには、各IDをクリックする必要があります。何かをクリックしたりトリガーしたりせずにIDに番号を付ける方法はありますか? – SCcode

+0

はい、本体のオンロードで同じ機能を呼び出すことができます。または、@ Bruno Peresのようにスクリプト部分で定義することもできます。 – GraveyardQueen

0

parentのIDを設定できます。その下にそれぞれdividを設定する関数を作成します。これを試してください:

function setIdChildDivs(id) { 
 
    var newId = 0; 
 
    var d = document.querySelectorAll('#' + id + ' div'); 
 
    d.forEach(function(elm) { 
 
    elm.setAttribute("id", newId++); 
 
    elm.innerText += ' (id:' + newId + ')'; 
 
    }) 
 
} 
 
setIdChildDivs("parent");
<form id="parent" class="index-form" name="LoginForm"> 
 
    <div class="index-input">sdfs 
 
    </div> 
 
    <div class="index-input">sdfs 
 
    </div> 
 
    <div class="index-input">sdfsfd 
 
    </div> 
 
    <div class="index-input">adasd 
 
    </div> 
 
    <div class="index-input">asdasd 
 
    </div> 
 
</form>

0

これは移動するための方法である:

let nextId = 1; 
 

 
Array.prototype.forEach.call(
 
    document.getElementsByClassName('nextClass'), div => { 
 
    div.id = `id-${nextId}`; 
 
    nextId++; 
 
    } 
 
);
<div class="nextClass">1</div> 
 
<div class="nextClass">2</div>

あなたはあなたのでid属性にJavascriptを評価することはできません後でこれらのIDを更新する必要があります。

また、idは番号で開始できないことに注意してください。

関連する問題