• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Javascriptでページ内の任意クラスを非表示)

Javascriptでページ内の任意クラスを非表示

このQ&Aのポイント
  • Javascriptを使用して、ページ内に存在する特定のクラスを非表示にする方法について教えてください。
  • ページ内に複数存在する特定の要素に含まれる「非表示」というテキストを持つ要素を非表示にする方法を教えてください。
  • JavascriptやjQueryを使用して、ページ読み込み後に「非表示」というテキストを持つ特定の要素を検索し、非表示にする方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答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で書けばもっと簡略になることでしょう)

ok-rjak
質問者

お礼

思ったような挙動になりました! こちらを使わせていただこうと思います。 ありがとうございました。

その他の回答 (2)

回答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>

ok-rjak
質問者

お礼

Firefoxは使っていないのですが、たぶん他のブラウザでも問題ないでしょう。 ありがとうございます。

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

#1です。 ミスってました。  ((t=e.textContent) || t!==undefined) は  ((t=e.textContent)!==undefined) でよさそうですね。

ok-rjak
質問者

お礼

思ったような挙動になりました! こちらを使わせていただこうと思います。 ありがとうございました。

関連するQ&A

専門家に質問してみよう