10

h1jQuery を使用して、一方が でもう一方が である場合、親要素の最初の 2 つの子を見つける最も効率的な方法は何でしょうかp。私のコードは現在機能していません。ベスト プラクティスを使用してこれを達成したいと考えています。

CSS

div > *{
    display: none;
}

HTML

<div>
    <h1>Heading</h1>
    <p>Paragraph 1</p>
    <p>Paragraph 2</p>
</div>

<div>
    <h1>Heading</h1>
    <p>Paragraph 1</p>
    <p>Paragraph 2</p>
</div>

Javascript

$('div h1').show();    
$('div p:first-child').show();

編集私は実際に複数のDIVを扱っています。違いがあるとは思っていませんでしたが、間違っていたようです。

4

9 に答える 9

22

試す、

$('div').children().slice(0,2).show();

1 つ以上の div がある場合は、以下のように試してください。

$('div').each (function () {
    $(this).children().slice(0,2).show();
});
于 2012-05-18T20:30:19.560 に答える
7

メソッドの代替slice()方法:

$('div').children(':lt(2)').show()

(ただし、特に大規模なコレクションの場合は、スライスもお勧めします)

于 2012-05-18T20:33:38.970 に答える
2

http://jsfiddle.net/94EU7/

$('div :lt(2)').show();    
于 2012-05-18T20:33:35.280 に答える
1

記述的なセレクターは

$('div').find('h1:first, p:first').show(); 

これにより、意図と選択している要素が明確になります。

于 2012-05-18T20:32:59.547 に答える
1
$('div').children().slice(0, 2).show();
于 2012-05-18T20:32:49.453 に答える
1

以下のようにセレクターを使用できます

$('div > *:lt(2)').show();

働くフィドル

于 2012-05-18T20:32:53.993 に答える
1
$('div p:first-child,div p:nth-child(2)').show();
于 2012-05-18T20:38:18.413 に答える
0

eq()次のような関数が必要になると思います。

$("div").children().eq(0); // first child
$("div").children().eq(1); // second child
于 2012-05-18T20:30:58.977 に答える
0

これにjQueryを使用する必要がある理由がわかりません。

var firstChild = div.firstChild;
firstChild.style.display = 'initial';
firstChild.nextSibling.style.display = 'initial';
于 2012-05-18T20:38:57.553 に答える