いつもお世話になってます。
早速ですが、質問です。
<div class=hoge">あああ</div>
<div class=hoge">あああ</div>
<div class=hoge">あああ</div>
<div class=hoge">あああ</div>
と自動的に吐き出される時、
divに【 class="hoge" id="hoge1" 】のように記述を追加したいのです。
<div class=hoge" id="hoge1">あああ</div>
<div class=hoge" id="hoge2">あああ</div>
<div class=hoge" id="hoge3">あああ</div>
<div class=hoge" id="hoge4">あああ</div>
ただ、onloadイベントを使わずに上記を実行したいのですが、
書き方が分かりません。
onloadを使わない書き方をご教授ください。
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
JavaScriptライブラリの jQuery を使ってもいいなら、以下の一行でidの付加が実現できます。
$("div.hoge").each(function(index, elem) { $(elem).attr("id", "hoge"+(index+1));});
このままだと、div ができあがってから、このスクリプトを実行する必要がありますが、
$(document).ready(function(){
$("div.hoge").each(function(index, elem) {$(elem).attr("id", "hoge"+(index+1)); });
});
とすれば、この記述をどこで行っても
「ファイル読み込み完了後、onload が実行される前」のタイミングで上述のid付加処理が実行されるようにできます。
jQueryについては以下のページが入門として参考になるでしょうか。
http://allabout.co.jp/internet/javascript/closeu …
No.3
- 回答日時:
onloadはソースをhtmlに埋め込まないための手段なので
逆に考えればbodyタグの最後にソースを埋め込んでしまえばよいでしょう。
<html>
<body>
<div class="hoge">あああ</div>
<div>あああ</div>
<div class="hoge">あああ</div>
<div class="hoge">あああ</div>
<div>あああ</div>
<div class="hoge">あああ</div>
<script>
var tags=document.getElementsByTagName("div");
var count=0;
for (var i=0;i<tags.length;i++){
if(tags[i].className=="hoge") tags[i].id="hoge"+(++count).toString();
}
</script>
</body>
</html>
回答ありがとうございます!!
> onloadはソースをhtmlに埋め込まないための手段
自分はJavaScriptに関してあまり明るくないので参考になりました。
ありがとうございました!!
No.1
- 回答日時:
onloadを使わないのなら、document.write()でするのがベストだと思います。
この関数は、引数で指定した文字列をタグとみなして出力します。
挿入したい部分にjavascriptを直接書くか、外部ファイル化で入れてください。
<外部ファイルで挿入>
~~~~~html側~~~~~
<body>
...
<script type="text/javascript" src="hoge.js"></script>
...
</body>
~~~~~hoge.js側~~~~~
for(var i=1;i<=4;i++){
document.write('<div class="hoge" id="hoge'+i+'">あああ</div>');
}
<直接挿入>
~~~~~html側~~~~~
<body>
...
<script type="text/javascript"">
for(var i=1;i<=4;i++){
document.write('<div class="hoge" id="hoge'+i+'">あああ</div>');
}
</script>
...
</body>
回答ありがとうございました!!
document.writeの発想はありませんでした。。。
<div class=hoge">を検索してidを振ると言う事ばかり考えてました。
脳ミソ固まってましたw
ありがとうございました!!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Ruby No route matches [GET] "/posts/5/destroy" 1 2022/03/24 13:00
- JavaScript Javascript初心者|jQueryの.val()で値を取得し複数の要素を連結させる方法知りたい 2 2022/06/02 12:06
- HTML・CSS html/cssで要素が出てこなくて困ってます 1 2022/12/31 16:59
- JavaScript 【Javascript】ボタンクリックで2つのclassに対し、それぞれ別のclassを追加したい 1 2022/07/29 20:52
- HTML・CSS PCサイズで赤い画像2つと、青い画像2つがそれぞれ横に2つずつ並んでいるのですが、これをスマホサイズ 5 2022/04/11 12:01
- HTML・CSS サルワカさんの吹き出しのスタイルシートについて。 https://saruwakakun.com/h 2 2022/10/28 22:55
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- PHP 掲示板を作成しておりアップロードファイルとメッセージを並べたいので、アドバイスお願い致します 2 2023/07/17 21:01
- HTML・CSS CSSのホバーエフェクト 1 2023/06/19 06:53
- HTML・CSS CSS のみのタブ切り替えについて 1 2023/01/11 16:47
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
MAX関数を使ってからLEFT JOIN...
-
createElementで作成した要素を...
-
背景色を透明化
-
読み込んだQRコードをフォーム...
-
Jquery 親要素で順番入れ替え
-
console.log結果をhtmlで表示し...
-
iframe内のリンクが飛ばないの...
-
innerHTMLに入れたリンクが反応...
-
javascriptテキストBOX色を元に...
-
createElementが一瞬で消えてし...
-
変数名をどのようにつけるのが...
-
jQueryでクリックされた要素のi...
-
jqueryを使って無駄なspanタグ...
-
removeEventListenerについて
-
自働生成される<div>タグに連番...
-
変数内容をHTML内で表示する方法
-
Notice:Undefined index が。
-
配列で特定キーが同じ値だった...
-
リンク色を動的に変更したい。i...
-
jQueryで特定id以外の下にある...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
MAX関数を使ってからLEFT JOIN...
-
HTMLタグに複数のクラスを設定...
-
変数名をどのようにつけるのが...
-
401エラードキュメントを401.ht...
-
javascriptテキストBOX色を元に...
-
読み込んだQRコードをフォーム...
-
タブで開いてさらにタブ内をア...
-
createElementで作成した要素を...
-
removeEventListenerについて
-
表示・非表示のスクリプトで、...
-
HTMLとJavaScriptで作ったタイ...
-
HTMLとJavaScriptで作ったタイ...
-
getElementByIdの戻り値がnull...
-
指定したパスが現URLに含まれて...
-
[急ぎ] videoタグで埋め込んだm...
-
IFRAMEの表示/非表示を切り替え...
-
iframe内のリンクが飛ばないの...
-
removeAttribute()メソッドで削...
-
背景色を透明化
-
jQueryで同じid属性が複数あっ...
おすすめ情報