人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Jqueryで「:before」のような疑似クラスの値を変更するのはどうすればよいでしょうか。

やりたい事としてはアイコンフォントのプロパティ(font-sizeやcolor)を変更したいと考えています。

現状はどうしてもアクセスできないので$(セレクタ).removeClassや$(セレクタ).addClassで変更しているのですが、できれば$(セレクタ).css()のような形で操作できればと考えています。

●質問者: 匿名質問者
●カテゴリ:インターネット ウェブ制作
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● 匿名回答1号

え。

$("div#target").prev().css("color", "red");

とかで取って来られないんでしたっけ。。。
http://www.tohoho-web.com/js/jquery/traversing.htm


匿名質問者さんのコメント
回答ありがとうございます。 試してみたのですがやはりアクセスできないようです。

匿名回答1号さんのコメント
>| $("#target").children("#before_item").css("color", "red"); |< でどうだ! 職場にいれば、すぐに試せるのにもどかしい!!

匿名回答1号さんのコメント
いや、 >| $("#target").children().first().css("color", "red"); |< が確実かな。

匿名質問者さんのコメント
試してみましたがやはりうまくいきませんでした。 具体的には以下のサイトで落とせるアイコンフォントを利用しております。 http://www.flaticon.com/ 色々と情報を探していますが、Googleでも具体的な例が存在しないところを見ると、そもそも現状のCSSやJavaScriptの仕様では難しい(そもそもできない)のかもしれません。

匿名回答1号さんのコメント
うーん。 >| $("#target").before("<img src='...'></img>"); |< で作っておいて、 >| $("#target").prev().css("color", "red"); |< で出来るはずだと思うんだけど。ドコが違うんだろう。。。

匿名質問者さんのコメント
えっと、おそらくそれは「#target」の前後に特定のコンテンツを追加して、そのコンテンツをprev又はnextでアクセスし、そのプロパティにアクセスしているのだと思います。 もともとbefore()自体がコンテンツの追加メソッドですので。 ですので、疑似セレクタにアクセスしているわけではないのではないかと思います。

匿名回答1号さんのコメント
ああ。:before、:after疑似セレクタ自体は、他の疑似セレクタと違って、JQueryで直接は対応してないんですよ。たぶん前述の方法でコンテントを追加して操作する思想なんだと思います。

匿名質問者さんのコメント
そうですね。 やはり双方技術的には別物であるので現状の仕様では直接操作する方法は存在しないようですね。 色々とありがとうございました。

2 ● 匿名回答2号

$(セレクタ).css(??) と書く時,セレクタ内に疑似クラスを含めるはずですが。
・・・そういう話ではないのですか?


匿名質問者さんのコメント
回答ありがとうございます。 最初はセレクタに含めて対応できるかと思ったのですが、どうやってもアクセスできないようです。 $("#example:before").css("color", "#ffffff")のような形では無理でした。 セレクタそのものの指定を誤っているかとも思ったのですが、ネットで探しても情報が上手く見つからず… どのように指定すればよいのでしょうか?

匿名回答1号さんのコメント
疑似セレクタでは:beforeに対応してないんですよねー(泣

匿名回答2号さんのコメント
ごめん,jQueryどころかそもそもJavaScriptって疑似クラスに対応してないんでした。 >CSSの疑似クラスは非DOM。JavaScript/jQueryで直接操作は不可能。style要素の動的変更で対処せよ >http://d.hatena.ne.jp/TipsMemo+computer-technology/20140426/p1
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ