やりたい事としてはアイコンフォントのプロパティ(font-sizeやcolor)を変更したいと考えています。 現状はどうしてもアクセスできないので$(セレクタ).removeClassや$(セレクタ).addClassで変更しているのですが、できれば$(セレクタ).css()のような形で操作できればと考えています。
え。
$("div#target").prev().css("color", "red");
回答ありがとうございます。試してみたのですがやはりアクセスできないようです。
$("#target").children("#before_item").css("color", "red");
でどうだ!職場にいれば、すぐに試せるのにもどかしい!!
いや、
$("#target").children().first().css("color", "red");
試してみましたがやはりうまくいきませんでした。具体的には以下のサイトで落とせるアイコンフォントを利用しております。http://www.flaticon.com/色々と情報を探していますが、Googleでも具体的な例が存在しないところを見ると、そもそも現状のCSSやJavaScriptの仕様では難しい(そもそもできない)のかもしれません。
うーん。
$("#target").before("<img src='...'></img>");
$("#target").prev().css("color", "red");
えっと、おそらくそれは「#target」の前後に特定のコンテンツを追加して、そのコンテンツをprev又はnextでアクセスし、そのプロパティにアクセスしているのだと思います。もともとbefore()自体がコンテンツの追加メソッドですので。ですので、疑似セレクタにアクセスしているわけではないのではないかと思います。
ああ。:before、:after疑似セレクタ自体は、他の疑似セレクタと違って、JQueryで直接は対応してないんですよ。たぶん前述の方法でコンテントを追加して操作する思想なんだと思います。
そうですね。やはり双方技術的には別物であるので現状の仕様では直接操作する方法は存在しないようですね。色々とありがとうございました。
$(セレクタ).css(~~) と書く時,セレクタ内に疑似クラスを含めるはずですが。・・・そういう話ではないのですか?
回答ありがとうございます。最初はセレクタに含めて対応できるかと思ったのですが、どうやってもアクセスできないようです。$("#example:before").css("color", "#ffffff")のような形では無理でした。セレクタそのものの指定を誤っているかとも思ったのですが、ネットで探しても情報が上手く見つからず…どのように指定すればよいのでしょうか?
疑似セレクタでは:beforeに対応してないんですよねー(泣
ごめん,jQueryどころかそもそもJavaScriptって疑似クラスに対応してないんでした。>CSSの疑似クラスは非DOM。JavaScript/jQueryで直接操作は不可能。style要素の動的変更で対処せよ>http://d.hatena.ne.jp/TipsMemo+computer-technology/20140426/p1
○疑似要素