3

jQueryを介してHTMLコードを検索し、最も多くのHTMLタグを持つdivを取得したいと思います。以下の例では、jQueryには4つのdivが含まれているため、jQueryは#div2を返す必要があります。

<div id="div1">
    <div>content</div>
    <div>content</div>
    <div>content</div>
</div>
<div id="div2">
    <div>content</div>
    <div>content</div>
    <div>content</div>
    <div>content</div>
</div>
<div id="div3">
    <div>content</div>
    <div>content</div>
</div>

この例が少しあいまいな場合は申し訳ありませんが、特定のコードブロックが必要だとは思いませんでした。前もって感謝します。

4

3 に答える 3

12

あなたはそれをすることができますiterating through each divそしてkeeping the div with maximum childs

ライブデモ

maxChild = 0;
maxChildDiv = null;

$('div').each(function(){
    currentChildCount = $(this).children().length 
    if(currentChildCount > maxChild ) 
    {
        maxChild = currentChildCount ;
        maxChildDiv = $(this);
    } 
});
于 2012-10-24T12:12:36.860 に答える
2

これは私のために働いた:-

<html>
    <head>
        <title>test</title>
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
        <script>

$(document).ready(function() {
    max = 0;
    divid = null;

    $('div').each(function() {
        if($(this).children().length > max) {
            max = $(this).children().length;
            divid = $(this).attr('id');
        } 
    });

    alert (divid);
});

        </script>
    </head>
    <body>
        <div id="div1">
            <div>content</div>
            <div>content</div>
            <div>content</div>
        </div>
        <div id="div2">
            <div>content</div>
            <div>content</div>
            <div>content</div>
            <div>content</div>
        </div>
        <div id="div3">
            <div>content</div>
            <div>content</div>
        </div>
    </body>
</html>
于 2012-10-24T12:23:40.527 に答える
2
var maxDiv = $('div').get().reduce(function(child1, child2) {
  return $(child1).children().length > $(child2).children().length ? child1 : child2;
});
alert(maxDiv.id);

このreduceメソッドはECMAScript5の一部であるため、最新のブラウザーで(より効率的に)サポートされます。そのリンクで説明されているように、プロトタイプが存在しない場合はreduce、プロトタイプに追加できます。Array

ここでデモ。

于 2012-10-24T12:35:39.567 に答える