<div class="default">テキスト内容</div>
上記のようなHTMLが、全ページに共通で入っているという前提で
『http://www.アドレス.com/』を表示している時のみ
<div class="toppage">テキスト内容</div>
と、言うようにclass名を
JavaScriptで変更する事は可能でしょうか?
■例:
http://www.アドレス.com/ → class="toppage"
http://www.アドレス.com/contact/ → class="default"
http://www.アドレス.com/company/ → class="default"
No.3ベストアンサー
- 回答日時:
ごめん、中途半端だったかもしれませんね。
フルで書くとこんな感じで
<style>
.toppage{
color:red;
}
.default{
color:blue;
}
</style>
<script>
window.onload=function(){
var path=location.pathname;
if(path=="/"){
var tags=document.getElementsByTagName("div");
for(var i=0;i<tags.length;i++){
if(tags[i].className=="default") tags[i].className="toppage";
}
}
}
</script>
<div class="default">テキスト内容</div>
ちなみに解説すると
var path=location.pathname;
→自分自信のURLのパス部分をもとめる
if(path=="/"){
→パスが「/」(ということはルート=インデックスページ)のとき・・・
var tags=document.getElementsByTagName("div");
→ページないのdivタグを全部あつめてきて頭から0,1,2という序数のつく
配列(tags[0],tags[1]・・・)におさめる
for(var i=0;i<tags.length;i++){
→順番にチェック
if(tags[i].className=="default") tags[i].className="toppage";
→もしi番目のタグのクラス名がdefaultだったら
そのタグのクラス名をtoppageにかえる
無事、思い通りの結果が得られました。
てっきりhtml上の記載まで”toppage”に変わるものだと思いこんでいたので
スタイルシートまでフルで書いていただいてよかったです。
(今まではhtmlソース上の変化の確認ばっかりしてました・・・)
ありがとうございました!
No.2
- 回答日時:
ざっとこんな感じで?
var path=location.pathname;
if(path=="/"){
var tags=document.getElementsByTagName("div");
for(var i=0;i<tags.length;i++){
if(tags[i].className=="default") tags[i].className="toppage";
}
}
ご回答ありがとうございます。
教えていただいた方法で現在試しているのですが
やり方がまずいのか、思うようにclass名が変わってくれません。
以下、わからないなりに解釈してみました。
1| var path=location.pathname;
2| if(path=="/"){
3| var tags=document.getElementsByTagName("div");
4| for(var i=0;i<tags.length;i++){
5| if(tags[i].className=="default") tags[i].className="toppage";
6| }
7| }
1| URLを取得
2| 取得したURLが「http://www.アドレス.com/」の場合
3| ページ内のdiv
4| 全てを
5| ??
この5行目の動きの意味が理解できませんでした・・・
どこでhtml内のclass名を変更しているのでしょうか?
質問が続き申しわけございません。
No.1
- 回答日時:
できますが、各htmlのbodyにidでも付けておいた方がなにかと便利だと思います。
/index.html → <body id="toppage">
/contact/index.html → <body id="contact">
/company/index.html → <body id="company">
cssファイル
#toppage .toppage {
class="toppage" に書きたい内容
}
#contact .toppage,
#company .toppage {
class="default" に書きたかった内容
}
一部のbodyにだけidを振って次のように書きわける事も。
.toppage {
}
#xxx .toppage {
}
もっと色々理由があってjavascriptで書き換えたいのでしたら失礼!
そうなんです、<body>~</body>の間しかいじれない状態の話しなんです。
説明不足でした、すいません。
ですが、今後の参考にさせていただきます。
ご回答ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS サルワカさんの吹き出しのスタイルシートについて。 https://saruwakakun.com/h 2 2022/10/28 22:55
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- PHP アコーディオンPHPが上手くいかない 3 2022/07/15 16:29
- PHP アップロード画像数でCSSを分けることに成功したのですが、画像の横に文字を並べることが出来ません。 3 2023/07/28 17:16
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- HTML・CSS 【HTML】【CSS】【Swiper】 元の画像は横1200×縦600なのですが、実際のサイト上に反 5 2022/07/16 13:57
- HTML・CSS FC2カートのテンプレートでの商品表示について 1 2023/03/02 18:05
- JavaScript 【Javascript】ボタンクリックで2つのclassに対し、それぞれ別のclassを追加したい 1 2022/07/29 20:52
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
idの中のid指定
-
個別にリンクの色を変える方法
-
CSSに同じclass名がいっぱい‥。...
-
1ページ内で2種類のリンク文字...
-
HTML要素のid/class名の長さに...
-
リンク文字の 一部だけ色を変...
-
divの入れ子を多用してページを...
-
サイトにjQueryが使用されてい...
-
CSSの適用を一部だけ除外したい。
-
一部のリンクの下線を消す
-
<span>で2重にかけているものを...
-
CSSでテキストリンクの色を複数...
-
最近、HTMLのヘッダーをIDで定...
-
CSS, リンクの色を一部変えるに...
-
liリストタグの背景色に色がつ...
-
CSSのクラス名・ID名の指定でワ...
-
htmlの文字が縦書きになる
-
超音波で洗脳。
-
HTML属性での「""」 「''」違い
-
<div id="container">の使いか...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
個別にリンクの色を変える方法
-
htmlのid属性って必要なの?
-
最近、HTMLのヘッダーをIDで定...
-
HTML要素のid/class名の長さに...
-
CSSに同じclass名がいっぱい‥。...
-
liリストタグの背景色に色がつ...
-
CSSのクラス名・ID名の指定でワ...
-
サイトにjQueryが使用されてい...
-
ページの左右の余白(枠外)に...
-
CSS, リンクの色を一部変えるに...
-
透過背景を解除するにはどうす...
-
<span>で2重にかけているものを...
-
idの中のid指定
-
display:table-cell内でこんな...
-
CSSが効かずどのように指定すれ...
-
スタイルシートで、id属性の中...
-
【VBA/HTML】IE画面内のページT...
-
brにクラスをつけてcssでdispla...
-
外部css定義したclassをht...
-
CSS内で使われる山括弧の意味が...
おすすめ情報