

お世話になっております。
javascript、または何らかの方法で、特定の条件にあうHTML要素のCSSプロパティを一括で書き換える方法を探しております。
Dreamweaverを使っているのでビヘイビアでできないか試してみましたが、ID単位で要素を扱うので複数のレイヤーを同時に表示・非表示することはできないようでした。
以下、やりたいことの一例です。下記のように、ボタンを押すとその条件に合わないclassの要素を「display:none」状態したいと考えています。
------------------------------------------------------------------
[イヌ表示ボタン] [ネコ表示ボタン] [両方表示ボタン]
<div class="dog">ダルメシアン</div>
<div class="cat">ロシアンブルー</div>
<div class="dog">柴犬</div>
<div class="dog">チワワ</div>
<div class="cat">シャム</div>
<div class="cat">ヒマラヤン</div>
<div class="cat"アビシニアン</div>
<div class="dog">ゴールデンレトリーバー</dog>
イヌ表示ボタンを押したときは、class="cat"がdisplay:noneになり、
のブラウザ上では犬だけがピックアップ表示される。
↓
<div class="dog">ダルメシアン</div>
<div class="dog">柴犬</div>
<div class="dog">チワワ</div>
<div class="dog">ゴールデンレトリーバー</dog>
------------------------------------------------------------------
実際にはボタンで操作するだけではなく、たとえば犬ページ、ネコページを同じコンテンツに更新し、ロードイベントだけ異なった記述をするだけで、それぞれのページに適切なコンテンツのみ表示をさせたりしたいと考えております。
恐れ入りますが、何卒、よろしくお願い致します。
No.2ベストアンサー
- 回答日時:
『指定範囲内のdiv要素について、チェックして(表示/非表示)する』みたいなことでよいのでは?
class指定のないdivは常に(非表示/表示)とするのか、両方あると思いますがこんなのではどうでしょうか?
* load時は対象を指定して fuga() を実行するようなことでよいかと…
(全角空白は半角に)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="ja">
<head><title>sample</title>
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<script type="text/javascript">
<!--
function hoge(evt){
var t = evt.target || evt.srcElement;
if(t.nodeName=="BUTTON")
fuga(t.getAttribute("name"));
}
function fuga(str){
var div = document.getElementById("item_list").getElementsByTagName("div");
for(var i=0, d; d=div[i++];)
if(d.className){
var reg = new RegExp("(^|:)" + d.className + "(:|$)");
d.style.display = reg.test(str)?"block":"none";
}
}
//-->
</script>
</head>
<body>
<div onclick="hoge(event)">
<button type="button" name="dog">犬表示</button>
<button type="button" name="cat">猫表示</button>
<button type="button" name="dog:cat">犬猫表示</button>
</div>
<div id="item_list">
<div class="dog">ダルメシアン</div>
<div class="cat">ロシアンブルー</div>
<div class="dog">柴犬</div>
<div class="dog">チワワ</div>
<div class="cat">シャム</div>
<div class="cat">ヒマラヤン</div>
<div class="cat">アビシニアン</div>
<div class="dog">ゴールデンレトリーバー</div>
<div>クラス指定のない要素</div>
</div>
</body>
</html>
お礼遅くなりまして大変すみませんでした。
さらにお伺いしたいことがあったのですが、多忙で内容がまとまらず、今まで時間がかかってしまいました。
いろいろなサイトで勉強して、教えて頂いた方法を自分でも使いこなせるようになりました。が、jQueryという便利なものがあると知り、そちらを利用することにしました。
どうもありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
javascript htmlの追記について
-
確認ダイアログを次からは表示...
-
折りたたみを全て開いて別ペー...
-
改行をしたいが、<br>と...
-
「ご処理進めて頂きますようお...
-
エクセルVBAで、MsgBox やInput...
-
UPS警告音を止めたい
-
CloseとDisposeの違い
-
メルカリのメルカードで買い物...
-
アクセスVBAのMe!と[ ]
-
フォームコントロールから作っ...
-
お家デートをしててハグを長い...
-
エクセルで、日付を入力すると...
-
Googleフォーム・複数人の申し...
-
オブジェクト名をVBAで指定...
-
VBAでCOPYを繰り返すと、処理が...
-
生活保護受給者は性欲をどんな...
-
uwscについて、同一の画像(仮...
-
Visual Basic 6.0 コンボボック...
-
VBの質問#if 0 then ってどう...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
javascriptのエラーで質問です。
-
確認ダイアログを次からは表示...
-
【JavaScript】検索がヒットし...
-
JavascriptのHTMLクラス表示に...
-
Q&A掲示板の入力フォームに文字...
-
改行をしたいが、<br>と...
-
javascript htmlの追記について
-
GoogleストリートビューAPIでイ...
-
動画の上に広告をオーバーレイ...
-
webサイトに動画をはりつけ、ク...
-
formのsubmitを押すとモーダル...
-
javascriptで複数の表示・非表...
-
$ajaxではない抽出データを表示...
-
checkboxのチェックマークカス...
-
ECサイトのリクエストパラメー...
-
JavaScriptの空欄に埋めるもの...
-
SITEINFOの書き方について
-
フォーム要素を下から上にフェ...
-
iframe内のスクリプトを親から3...
-
macかwinか判別しスタイルシー...
おすすめ情報