- ベストアンサー
Javascriptでページ内の任意クラスを非表示
- Javascriptを使用して、ページ内に存在する特定のクラスを非表示にする方法について教えてください。
- ページ内に複数存在する特定の要素に含まれる「非表示」というテキストを持つ要素を非表示にする方法を教えてください。
- JavascriptやjQueryを使用して、ページ読み込み後に「非表示」というテキストを持つ特定の要素を検索し、非表示にする方法を教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>そのクラスが指定された要素の中で~~ が、どこまでの範囲を指しているのかわかりませんがご参考までのネタとして。 (あとは適当に作り直してください。インデントは全角空白になっています) (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で書けばもっと簡略になることでしょう)
その他の回答 (2)
- babu_baboo
- ベストアンサー率51% (268/525)
ふぁいあ~ほっくすなら、うごくよ。 <!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>
お礼
Firefoxは使っていないのですが、たぶん他のブラウザでも問題ないでしょう。 ありがとうございます。
- fujillin
- ベストアンサー率61% (1594/2576)
#1です。 ミスってました。 ((t=e.textContent) || t!==undefined) は ((t=e.textContent)!==undefined) でよさそうですね。
お礼
思ったような挙動になりました! こちらを使わせていただこうと思います。 ありがとうございました。
お礼
思ったような挙動になりました! こちらを使わせていただこうと思います。 ありがとうございました。