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ランキング
-
ActiveXobjectが作成できない
-
任意の座標をクリックさせるには
-
javascriptでスロットゲームを...
-
javascript 特定のタグのidの存...
-
<a>タグのテキストを取得
-
onchangeイベントを使ってspan...
-
innerHTML実行後のイベント
-
Click回数を数え、規定された回...
-
DIV内のDIV要素を移動する。
-
重複しないくじの作り方がわか...
-
画像上のクリックした場所が分...
-
HTML:Tableタグに対し、JavaScr...
-
モーダルダイアログウィンドウ...
-
JavaScriptで決まった「時刻」...
-
C#テキストボックスの文字を配...
-
Boolean型配列中のTrueの有無を...
-
google apps scriptの終了のさせ方
-
関数でy=g(x)のgとは何の略です...
-
jspからjavascriptの変数引継ぎ
-
Linux バイナリ実行できない "...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
<a>タグのテキストを取得
-
[初心者]javascriptのfor文でな...
-
ActiveXobjectが作成できない
-
任意の座標をクリックさせるには
-
appendChildがieだとできない??
-
onchangeイベントを使ってspan...
-
【Tabキー】特定の範囲内だけで...
-
モーダルダイアログウィンドウ...
-
javascript 特定のタグのidの存...
-
日本語入力の禁止
-
innerHTML実行後のイベント
-
HTML:Tableタグに対し、JavaScr...
-
onclickを使わずにイベント処理...
-
アンカークリックのイベントを...
-
javascriptでスロットゲームを...
-
画像上のクリックした場所が分...
-
javascriptでCSVを呼出しvlookup
-
javascriptで編集可能不可能の...
-
Click回数を数え、規定された回...
-
子画面からwindow.openを開いた...
おすすめ情報