報酬1000pt。JAVASCRIPTのお話です。


class=”nullpo”の要素のstyle.displayの値をnoneにする簡潔なスクリプトを
教えてください。

★ノリ的には複雑なスクリプトよりもbookmarklet的な簡素なものを希望しています。
IE5、Firefoxの両方で動いてくれればバッチリです。

こんな使い方して申し訳ありませんが、よろしくお願い致します。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2005/08/23 11:28:00
  • 終了:--

回答(1件)

id:sparituda No.1

sparituda回答回数57ベストアンサー獲得回数02005/08/23 13:34:49

ポイント1000pt

http://www.hatena.ne.jp/1124764080#

人力検索はてな - 報酬1000pt。JAVASCRIPTのお話です。 class=”nullpo”の要素のstyle.displayの値をnoneにする簡潔なスクリプトを 教えてください。 ★ノリ的には複雑なスクリプトよりもbo..

ブックマークレットに出来る様に、リンク形式にしました。”と’は半角にして下さい。


IEのみ対応なら、次の様な感じです。一応FireFoxでも動きますが、Javascriptコンソールに警告が出てます。

<a href=”javascript:(function(){for(ii=0;ii<document.all.length;ii++){myObj=document.all[ii];if(myObj.className==’nullpo’){myObj.style.display=’none’}}})();

”>ぬるぽ非表示 for IE</a>


他のブラウザに対応しようとすると、IEのdocument.allと同様の、全てのエレメントを取得する方法が見つからなかったので、特定のタグのみに対応する限定機能版になります。(この場合は、DIVのみ)

<a href=”javascript:(function(){for(ii=0;ii<document.getElementsByTagName(’div’).length;ii++){myObj=document.getElementsByTagName(’div’)[ii];if(myObj.className==’nullpo’){myObj.style.display=’none’}}})();

”>ぬるぽ非表示 for W3C (DIVのみ)</a>


getElementsByNameを使用すれば、同一のname属性のもの全てに対応できます。class=”nullpo”でなく、name=”nullpo”に出来れば良いのですが。


なお、再表示する時は、myObj.style.display=’’としてください。

id:drivingsummer

ご丁寧にどうもありがとうございます。

なるほどそういう制約があったんですね。

今のところ特定のタグのみなのでご回答していただいたスクリプトで大丈夫です。

2005/08/23 13:50:25
  • id:sparituda
    アフターサービス

    ポイントたくさん頂き、ありがとうございます。

    IE以外の対応について、回答に不十分なところがありましたので、補足させて頂きます。

    getElementsByTagNameでは、特定のタグしか対象に出来ないとしましたが、別途質問を立てたところ、タグ名にワイルドカード(*)を使用する事で、document内の全ての要素を取得できると回答を頂きました。
    http://www.hatena.ne.jp/1124773824
    これならNetscapeやSafariでもOKです。
    ただし、IE5.5では動作しません。(Mac版IE5.2はOK)

    従って、document.allが使える場合はdocument.allを、そうでなければ、document.getElementsByTagName(’*’)を使う、ということにすれば、主要なブラウザは一通り対応できそうです。
    条件判断が1つ増えたので、少し複雑になりましたが、こんな感じです。
    <a href=”javascript:(function(){if(document.all){myArray=document.all;}else{myArray=document.getElementsByTagName(’*’)}for(ii=0;ii<myArray.length;ii++){if(myArray[ii].className==’nullpo’){myArray[ii].style.display=’none’}}})();
    ”>ぬるぽ非表示</a>

    なお、以下の環境で動作確認済。
    Windows2000:IE5.5, Firefox1.0, Opera7.5
    WindowsXP:IE6.0
    MacOS X:Safari1.3, Firefox1.0, Netscape7.1, IE5.2
  • id:drivingsummer
    Re:アフターサービス

    わざわざ補足説明有り難うございます。
    javascriptはあまり触ったことがないのですが少し勉強になりました。

    だいたいperlでは時間かければやりたいことが出来るようになって
    きたんですが、他の言語だとサッパリです。

    教えていただいたスクリプトを参考に時間をつくって色々と試して
    力にしていきたいと思います。

この質問への反応(ブックマークコメント)

トラックバック

  • [Javascript]ブラウザ依存の悩み [Javascript]ブラウザ依存の悩み 2006-03-13 16:13:07
    Javascript、DOM、CSSに関する質問に回答しました。question:1124764080:title 検討のポイント 1)スタイルシートのdisplay属性をnoneに変更 属性を変更する対象が特定できれば、「オブジェクト.style.displa
  • Junyo - [XML] 2008-02-06 22:19:28
    [XML] ARMLの説明 文系、とりわけ法学・法律学の論文を容易に作成するためのXML(ARML)を作ってみました。学部レベル(外国の文献を引用しない)を想定しています。 ご興味をもたれました
「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません