クラス名が親/他のすべてのクラス名の上にある要素を検出するにはどうすればよいですか?

コーダー
  1. class-1class-2またはのようなクラス名が付けられていますclass-3
  2. 多くのクラス(必ずしも3つではない)が存在する可能性がありますが、私はすべてのクラス名を知っています。
  3. DOMの構造がわかりません。
  4. そして、1つのクラス(このクラスの要素)がすべての親であることを知っています。

しかし、親である/他のすべての既知のクラスの上にあるクラスをどのように見つける必要がありますか?それですかclass-1class-2それともclass-3

私はこのようなHTMLを持っています

    <div>
      <div> Hey nice talking to you </div>
      <div> Hey how are you</div>
      <div><br/></div>
      <div class="class-1">
        <div>Hey, are you there?</div>
        <div class="class-2">
          <div>How was the day</div>
          <div class="class-3"><br/></div>
        </div>
      </div>
    </div>

これが私が試したものです

    _findClass_1(html) {
      return Array.from(html.querySelectorAll('.class-1'));
    }

    _findClass_2(html) {
      return Array.from(html.querySelectorAll('.class-2'));
    }

    _findClass_3(html) {
      return Array.from(html.querySelectorAll('.class-3'));
    }

    // Parser
    getNodes(html) {
      const parsers = [
        this._findClass_1,
        this._findClass_2,
        this._findClass_3,
      ];

      let quotedNodes = [];

      for (const parser of parsers) {
        quotedNodes.push(parser(html) || []);
      }

      // How can I detect here which one was the parent of all? 
      return quotedNodes;
    }

手伝って頂けますか?jQueryはありません。

epascarello

私が考えることができるのは、配列をループして要素を選択し、他の2つの要素がその中に存在するかどうかを確認することだけです。親は、最も一致するものになります。これは、それぞれの要素が1つだけであることを前提としています。それ以上のロジックが必要な場合。(そして、考えられるすべての結果についてテストケースが必要になります)

var classes = [".class-1", ".class-2", ".class-3"]

var result = classes.reduce((obj, key, i, arr) => {
  const cpy = arr.slice()
  cpy.splice(i,1)
  const count =
    document.querySelector(key)
      .querySelectorAll(cpy.join(","))
        .length
  if (count > obj.count) {
    return { key, count }
  }
  return obj
}, {key:'', count:-1})

console.log(result.key)
    <div>
      <div> Hey nice talking to you </div>
      <div> Hey how are you</div>
      <div><br/></div>
      <div class="class-1">
        <div>Hey, are you there?</div>
        <div class="class-2">
          <div>How was the day</div>
          <div class="class-3"><br/></div>
        </div>
      </div>
    </div>

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

すべての要素に特定のクラスがある場合、要素にクラスを追加するにはどうすればよいですか?

分類Dev

同じクラスのクラス名ですべての要素を取得するにはどうすればよいですか?

分類Dev

jqueryオブジェクトから同じクラス名のすべての要素を取得するにはどうすればよいですか?

分類Dev

Rubyで親のクラス名を取得するにはどうすればよいですか

分類Dev

Swiftで親ViewControllerのクラス名を取得するにはどうすればよいですか?

分類Dev

Jqueryですべての親IDを同じクラス名で取得するにはどうすればよいですか?

分類Dev

親クラスのすべての機能を継承するにはどうすればよいですか?

分類Dev

クラス名が別のクラス名に存在する場合はどうすればよいですか?

分類Dev

親クラスへのすべての呼び出しを子クラスに転送するにはどうすればよいですか?

分類Dev

他の兄弟クラスが存在する場合、特定のクラス名からテキストを取得するにはどうすればよいですか?

分類Dev

部分的なクラス名で要素のリストを取得するにはどうすればよいですか?

分類Dev

SQL Serverにあるすべてのエラスティックプールの名前を取得するにはどうすればよいですか?

分類Dev

jQueryの要素からクラス名を動的に取得するにはどうすればよいですか?

分類Dev

Reactでクラス名ですべてのdom要素にアクセスするにはどうすればよいですか?

分類Dev

Beautifulsoupで親のクラス名を知るにはどうすればよいですか?

分類Dev

複数のクラス名を持つ要素を取得するにはどうすればよいですか?

分類Dev

HTML要素のすべてのCSSクラスを削除するにはどうすればよいですか?

分類Dev

html要素のクラス名を解析するにはどうすればよいですか?

分類Dev

すべての要素が型クラスのインスタンスであるHListにマップするにはどうすればよいですか?

分類Dev

テストメソッドがすべてのテストに共通のクラスにある場合、テストクラスの名前をログに記録するにはどうすればよいですか?

分類Dev

親クラスの最初の要素のみを非表示にするにはどうすればよいですか

分類Dev

同じクラス名を持つjavaScriptのすべてのクラスを選択するにはどうすればよいですか?

分類Dev

apクラスからすべての要素を選択するにはどうすればよいですか?

分類Dev

クラス名の名前をすばやく変更するにはどうすればよいですか?

分類Dev

クリップパスの親内の固定位置要素をすべての要素の上にとどめるにはどうすればよいですか?

分類Dev

ラベルに特定のクラスがあるかどうかを検出するにはどうすればよいですか?

分類Dev

別の要素が角度のあるクラスを取得するときに、要素にクラスを追加するにはどうすればよいですか?

分類Dev

jquery / javascript:親要素のすべての子から「active」クラスを削除するにはどうすればよいですか?

分類Dev

残りの行に影響を与えずに、すべての行にクラス名を追加するにはどうすればよいですか?

Related 関連記事

  1. 1

    すべての要素に特定のクラスがある場合、要素にクラスを追加するにはどうすればよいですか?

  2. 2

    同じクラスのクラス名ですべての要素を取得するにはどうすればよいですか?

  3. 3

    jqueryオブジェクトから同じクラス名のすべての要素を取得するにはどうすればよいですか?

  4. 4

    Rubyで親のクラス名を取得するにはどうすればよいですか

  5. 5

    Swiftで親ViewControllerのクラス名を取得するにはどうすればよいですか?

  6. 6

    Jqueryですべての親IDを同じクラス名で取得するにはどうすればよいですか?

  7. 7

    親クラスのすべての機能を継承するにはどうすればよいですか?

  8. 8

    クラス名が別のクラス名に存在する場合はどうすればよいですか?

  9. 9

    親クラスへのすべての呼び出しを子クラスに転送するにはどうすればよいですか?

  10. 10

    他の兄弟クラスが存在する場合、特定のクラス名からテキストを取得するにはどうすればよいですか?

  11. 11

    部分的なクラス名で要素のリストを取得するにはどうすればよいですか?

  12. 12

    SQL Serverにあるすべてのエラスティックプールの名前を取得するにはどうすればよいですか?

  13. 13

    jQueryの要素からクラス名を動的に取得するにはどうすればよいですか?

  14. 14

    Reactでクラス名ですべてのdom要素にアクセスするにはどうすればよいですか?

  15. 15

    Beautifulsoupで親のクラス名を知るにはどうすればよいですか?

  16. 16

    複数のクラス名を持つ要素を取得するにはどうすればよいですか?

  17. 17

    HTML要素のすべてのCSSクラスを削除するにはどうすればよいですか?

  18. 18

    html要素のクラス名を解析するにはどうすればよいですか?

  19. 19

    すべての要素が型クラスのインスタンスであるHListにマップするにはどうすればよいですか?

  20. 20

    テストメソッドがすべてのテストに共通のクラスにある場合、テストクラスの名前をログに記録するにはどうすればよいですか?

  21. 21

    親クラスの最初の要素のみを非表示にするにはどうすればよいですか

  22. 22

    同じクラス名を持つjavaScriptのすべてのクラスを選択するにはどうすればよいですか?

  23. 23

    apクラスからすべての要素を選択するにはどうすればよいですか?

  24. 24

    クラス名の名前をすばやく変更するにはどうすればよいですか?

  25. 25

    クリップパスの親内の固定位置要素をすべての要素の上にとどめるにはどうすればよいですか?

  26. 26

    ラベルに特定のクラスがあるかどうかを検出するにはどうすればよいですか?

  27. 27

    別の要素が角度のあるクラスを取得するときに、要素にクラスを追加するにはどうすればよいですか?

  28. 28

    jquery / javascript:親要素のすべての子から「active」クラスを削除するにはどうすればよいですか?

  29. 29

    残りの行に影響を与えずに、すべての行にクラス名を追加するにはどうすればよいですか?

ホットタグ

アーカイブ