8

これは本当に簡単な質問です:)

ここで、JavaScript が DOM の一部ではないオブジェクトを選択できるかどうか疑問に思っています... CSS によって作成された:afterまたはコンテンツを選択するようなものですか?:before

たとえば... divがあり、ボックスを作成する場合

div:after{
  content: '.';
  display: block;
  width: 200px;
  height: 200px;
  background: green;
}

これらの要素がどのように作成されるかを理解するのはまだ困難ですが、それらは画面上に要素を描画できますが、DOM の一部ではないため、それらとやり取りすることはできないということですか?

乾杯

4

2 に答える 2

7

いいえ、彼らとやり取りすることはできません。

これらは DOM の一部ではなく、割り当てられたスタイルの表現です。

コンテンツを追加/削除する必要がある場合は、クラス名を使用できます。

<div id='myElem' class='withAfter'>some content</div>
div.withAfter:after{
  content: '.';
  display: block;
  width: 200px;
  height: 200px;
  background: green;
}

次に、必要に応じてクラスを追加/削除します。

于 2011-02-17T16:25:16.143 に答える
2

docsを確認してください。プロパティを直接変更することはできず、疑似セレクターを介して作成されたコンテンツを操作できるようにも見えません。あなたができる最善のことは、プロパティを見ることです:http://jsfiddle.net/uaN6z/

次のようになります。

window.getComputedStyle(document.getElementById('test'), ':after')

それを変更する唯一の実行可能な方法は、ドキュメントのスタイル シートを変更することです。この SO の回答を参照してください: JavaScript からの CSS 疑似クラス ルールの設定

幸運を!

于 2011-02-17T16:45:02.143 に答える