0

元の質問

標的

jQuery を使用して、.intro-portfolioクラスを持つすべての要素を取得します。""要素が最初の要素でない場合は、 (nothing、空白、null バイト)に置き換えます。

私がしたこと

いろいろと調べてみると、これらの 質問が見つかり、自分の状況に当てはめてみました。簡略化されたコードは次のとおりです。

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
$(document).ready(function() {
$(".intro-portfolio:not(:first-child)").each(function() {
        $(this).repalceWith("");
    });
});
</script>
<body>

<p>Test this is the control</p>

<p class="filter">This is the first</p>

<p class="filter">Second</p>

<p class="filter">Third</p>

</body>
</html>

もちろん、これは機能しません (私が javascript/jQuery の開発者ではないことがわかりますか? そこで壊れている構文規則にうんざりしているに違いありません)。

これをどのように実装しますか?

環境

Tumblrのテーマ - 質問には関係ありませんが、クラスが適用される要素がわからない理由を説明していimgますiframe.


アップデート

答えてくれたみんな、本当にありがとう!明らかに、このような単純な質問には 1 つの実際の方法しかありませんが、すべての回答に感謝します! すべてに賛成票を投じます。

更新 1:解決策を試してみると、要素が表示から削除されている間、要素がまだ読み込まれていることがわかりました。

これが私の実装です:

<html>
<head>
 ...
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
 ...
    /* Remove HTML for all but first portfolio on home page */
    $(".intro-portfolio").slice(1).remove(); 
</script>
</head>
<body>
 ...
</body>
</html>

しかし、ソースを表示すると、要素はまだ存在しています。ドキュメント ページの 3 番目のコードの抜粋が言っているのは、要素をロードしたり、存在させたりしてはならないということではありませんか?

実際の完全なコードについては、開発サイトをご覧ください。

4

6 に答える 6

2
$(".intro-portfolio").not(":first").each(function() {
    $(this).bar();
});

DEMO

于 2012-07-09T07:10:34.050 に答える
2

このメソッドを使用して.slice、一致した結果のサブセットを選択できます。以下の例では、最初の項目を除くすべてを選択します (インデックスはゼロベースです)。

この.removeメソッドは、一致した要素を DOM から削除し、jQuery に関連付けられたイベント ハンドラーなども整理します。

jQuery('.intro-portfolio').slice(1).remove();
于 2012-07-09T07:04:00.473 に答える
2

他の回答に実際にないものはここにはありませんが、これはあなたがやろうとしていることの最も単純な形式です:

$('.intro-portfolio:not(:first)').remove()
于 2012-07-09T07:36:10.427 に答える
2

:first-child親の最初の子である場合にのみ、要素を選択します。

あなたの HTML には要素が含まれていませんが.intro-portfolio、要素がそれらであることを意味している場合、.filterそれらのどれも の最初の子ではありませんbodypクラスのない最初の要素は最初の子です。

あなたが望むようです:

$(".intro-portfolio").slice(1).remove();

これにより、選択した要素が最初の要素を除くすべてに縮小され、削除されます。

参考.slice.remove

デモ

于 2012-07-09T07:01:42.107 に答える
1
$(document).ready(function(e){
  $('.intro-portfolio:not(:first-child)').remove();
});

これかな?

于 2012-07-09T07:03:42.047 に答える
1

これを試して:

$(".intro-portfolio:not(:first-child)").html("");
于 2012-07-09T07:00:01.770 に答える