前提・実現したいこと
下記jsの
if(tags[i].className=="hogehoge") tags[i].id="hoge"+(++count).toString();
のカウント部分と
let span = document.getElementById('hoge' + (++count));
のカウント部分の数字を同じにするにはどのように記述したらよいでしょうか…?
例えば、
if(tags[i].className=="hogehoge") tags[i].id="hoge"+(++count).toString();
で出たカウント数値「"hoge"+(++count)」を「変数Z」として格納して
let span = document.getElementById(【変数Z】);
のように使う、といったことをしたいです。
ご教授頂けますと幸いです。
該当のソースコード
//囲んだ部分をコピー function copy(){ //範囲を指定 let range = document.createRange(); let span = document.getElementById('hoge' + (++count)); range.selectNodeContents(span); //指定した範囲を選択状態にする let selection = document.getSelection(); selection.removeAllRanges(); selection.addRange(range); //コピー document.execCommand('copy'); } // var tags=document.getElementsByTagName("span"); var count=0; for (var i=0;i<tags.length;i++){ if(tags[i].className=="hogehoge") tags[i].id="hoge"+(++count).toString(); }
上記jsを使用して、htmlはこのように記述しています。
<span class="hogehoge">1</span> <button type="button" onclick="copy()">btn</button> <span class="hogehoge">2</span> <button type="button" onclick="copy()">btn</button> <span class="hogehoge">3</span> <button type="button" onclick="copy()">btn</button> <span class="hogehoge">4</span> <button type="button" onclick="copy()">btn</button> . . .
spanとbuttonが増えた数だけ、htmlのidやclassを直接書き換えるのではなく、jsによってidを振って該当する範囲内だけコピーするようにしたいです。