
Javascriptで、ページ内に点在する任意のクラスを非表示にしたいと思います。
こんなことが可能でしょうか?
条件:
1.class="text"というspanなりdivなりがページ内に複数存在します。指定しているスタイルはフォントサイズやフォントカラーです。
2.そのクラスが指定された要素の中で、テキストで「非表示」となっている要素のみ非表示にしたいと思います。
例:<span class="text">非表示にしたい</span>、<div class="text">これは非表示です</div>
このように「非表示」という文字が含まれています。
3.「非表示」というテキストが含まれている要素にはclass="text"以外にclassもidもふられていないです。
4.jQueryやJavascriptは使えますが、あらかじめ指定要素にidやclassを付加しておくということができません。何らかの方法でページ読み込み後に検索し、探し出さないといけないのです。
案:
素人の私が考えた方法では、「非表示」という文字がマッチする「class="text"」要素を何らかの方法で検索し、その要素に対して「id="hide"」などを追加して、そのidを非表示処理するという方法です。
上記案をコード化できますか?
また、ほかにもっと簡潔にできるよという方法はありますか?
かなりの無理難題のような気がしますが、もしできるようであればよろしくお願いします。
No.1ベストアンサー
- 回答日時:
>そのクラスが指定された要素の中で~~
が、どこまでの範囲を指しているのかわかりませんがご参考までのネタとして。
(あとは適当に作り直してください。インデントは全角空白になっています)
(function(){
var f = window.onload;
window.onload = function(){
if(f) f();
var i, e, t, n, elms = document.body.getElementsByTagName("*");
for(i=0; e=elms[i++];){
if((n=e.className) && n.match(/\btext\b/))
if((((t=e.textContent) || t!==undefined)?t:e.innerText).indexOf("非表示")>-1)
e.style.display = "none";
}
}
})();
* これ(↑)だと
<a href="~" class="text">非<span>表示</span>~~
なんてのは対象になるけれど
<a href="~" class="text">非
<span>表示</span>~~
だと対象にならないとかになるけれど、どんなのが良いのかわからないので意図に応じてご修正を。
(多分、jQueryで書けばもっと簡略になることでしょう)
No.3
- 回答日時:
ふぁいあ~ほっくすなら、うごくよ。
<!DOCTYPE html>
<title></title>
<style type="text/css">
*[aria-hidden="true"] { display: none; }
.hide {
display : none;
}
</style>
<p class="text">非表示1</p>
<p class="text">表示2</p>
<p class="text">非表示3</p>
<script type="application/javascript; version=1.8">
var hoge0 =
(function (isInsideText)
(function (target, text, addClass)
Array.forEach (document.getElementsByClassName (target), function (e)
(isInsideText.call(e.textContent, text))
? e.setAttribute('aria-hidden', 'true')
: null)))
(function (text) -1 < this.indexOf (text));
hoge0 ('text', '非表示');
var hoge1 =
(function (isInsideText)
(function (target, text, addClass)
Array.forEach (document.getElementsByClassName (target), function (e)
(isInsideText.call(e.textContent, text))
? e.classList.add (addClass)
: null)))
(function (text) -1 < this.indexOf (text));
//hoge1 ('text', '非表示', 'hide');
var hoge2 =
(function (target, reg, addClass)
Array.forEach (target,
(function (e)
(reg.test (e.textContent))
? e.classList.add (addClass)
: null)));
//hoge2 (document.getElementsByClassName ('text'), /非表示/, 'hide');
</script>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- HTML・CSS CSS のみのタブ切り替えについて 1 2023/01/11 16:47
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript 指定したパスが現URLに含まれていたら特定要素を削除するJavascriptのコードを教えてください 2 2023/04/27 17:58
- JavaScript セレクトを全て選択されていないと、文字によるエラーメッセージを表示させるコードを調べています 2 2023/06/22 15:48
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- PHP ランキングを表示する際の画像の大きさを固定することは可能でしょうか? <?php if ( has_ 1 2022/07/21 14:55
- Visual Basic(VBA) Selenium Basicの件 5 2023/04/10 20:55
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
オブジェクトがぶつかった時の処理
-
cookie を利用して 別ページへ...
-
javascriptで自動計算フォーム...
-
javascriptの記述の誤りを指摘...
-
javascriptでCSVを呼出しvlookup
-
googlemapsAPIでマーカー表示さ...
-
xml+xslでの変換内容をtextareaへ
-
<a>タグのテキストを取得
-
クッキーによるidとパスワード...
-
javascriptでスロットゲームを...
-
onchangeイベントを使ってspan...
-
javascriptであるボタンを押す...
-
javascript 特定のタグのidの存...
-
Enterで次の入力項目へ進むには?
-
RadioButtonListの表示制御
-
JavaScriptのストップウォッチ...
-
JavaScript window.openで開く...
-
多重配列の定義について。【Ruby】
-
javscript超初心者です。
-
プルダウンでテキストエリア表...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ActiveXobjectが作成できない
-
<a>タグのテキストを取得
-
onchangeイベントを使ってspan...
-
任意の座標をクリックさせるには
-
innerHTML実行後のイベント
-
div要素内の全input要素をdisable
-
javascriptを使ったページ内の...
-
onclickを使わずにイベント処理...
-
javascriptで編集可能不可能の...
-
[初心者]javascriptのfor文でな...
-
「エラー:…は宣言されていませ...
-
配列の大括弧と丸括弧はどう違う?
-
Click回数を数え、規定された回...
-
【Tabキー】特定の範囲内だけで...
-
onclickとonkeypressの重複
-
javascriptでCSVを呼出しvlookup
-
HTML:Tableタグに対し、JavaScr...
-
ページ先頭にスムーズに移動(...
-
IE8でdivのcontenteditable=tru...
-
画像の一部を表示
おすすめ情報