2

style または class 属性で設定された DOM 要素のすべての CSS スタイルを取得する方法がいくつかあります。これはうまく機能しますが、クラスがこれに設定されていないと、この要素に設定できるクラスを見つけることができません。

現在、この DOM 要素に設定できるすべての CSS クラスとスタイルを取得する方法を探しています。RegExp で何か試してみましたが、ドキュメント スタイル ノードを検索して DOM ノードと比較する方法がわからないため、完璧ではありません。そんなことがあるものか?

私が必要なものの例:

<div class="set">
  <p class="anotherclass">some text</p>
  <p class="otherClass">some text</p>
</div>

CSS:

div.set { /* some css */ }
div.notSet { /* you could find me but not want to set me */ }
.autoSet_findMeToSet { /* set me to all tags with jquery */ }
div.autoSet_setMeNow { /* set me to the div tag with jquery */ }
div > p:first-child.autoSet_yeah { /* set me to the first p tag with jquery */
/* and so on */

ご覧のとおり、jQuery ですべての css クラスを特別な名前で設定したいと考えています。正規表現を使用すると、クラス名を見つけることができましたが、どのdom要素(htmlタグ)に設定する必要があるかを確認する方法がわかりません...

助けてくれてありがとう!

4

2 に答える 2

0

質問を正しく理解している場合:

$(".class *")

クラスを持つ要素内のすべての要素を選択しますclass

$(".class").find(element).length === 0

要素がクラスを持つ要素内にあるかどうか調べますclass

于 2013-04-14T11:42:41.483 に答える
0

jQuery $.contains() を使用して、見つかった要素が他の要素の中にあるかどうかを確認できます

ここでこれを行う方法の詳細: http://api.jquery.com/jQuery.contains/

したがって、あなたの例では、見つかったクラスがセット内にあるかどうかを調べるには、次のことができます。

$.each(foundElement, function(index, domElement){
    if($.contains(domElement, $('.set'))) {
        // domElement is inside the container with 'set' class
    } else {
        // domElement is not inside the container with 'set' class
    }
});
于 2013-04-14T11:13:00.037 に答える