2

わかりましたので、オブジェクトの配列について簡単な jQuery の質問をしたいと思います。

HTML ページからすべての要素 (たとえば、すべての段落) を取得し、それらを配列に格納する場合、それらの 1 つにアクセスして操作を行うにはどうすればよいですか?

たとえば、次の html があるとします。

<!DOCTYPE html>
<html>
    <head>
        <title></title> 
    </head>
    <body> 
    <p>Paragraph 1</p>
    <p>Paragraph 2</p>
    <p>Paragraph 3</p>
    <button id="myButton">Click here</button>

    <script src="jquery-1.6.2.min.js"></script>
    <script src="script.js"></script>
    </body>
</html>

これは私のscript.jsです:

$(document).ready(function(){
    $("#myButton").click(function(){

        var $paragraphs = $("p"); 
        $paragraphs.detach();  //Works fine, removes all elements
        //$paragraphs[0].detach();  //Doesn't work!

    }); 
});

最初の段落を削除できるように、配列の最初の要素で detach を呼び出そうとしていますが、うまくいかないようです...

id 属性を使用せずに最初の段落にアクセスする方法はありますか?

4

4 に答える 4

3

:eqセレクターを使用して最初の要素を選択できます。

$("p:eq(0)").detach();

これにより、最初の要素だけが切り離されます。

代わりに.eq()functionを使用すると、パフォーマンスが向上する可能性があります。

$("p").eq(0).detach();
于 2012-12-18T23:50:24.270 に答える
0

これを試して

$($paragraphs[0]).detach();

jQuery Object List にインデックスを渡す$paragraphs[0]と、オブジェクトは DOM オブジェクトになります

var $paragraphs = $("p"); 

var domObj = $paragraphs[0];

var jqueryObj = $(domObj);

したがって、jQuery オブジェクトとして再度ラップする必要があります。

:eq()代わりに、セレクターを使用できます

var $paragraph = $("p:eq(0)");  // Selects only the first para
                                 // which is a jQuery Object
$paragraph.detach();   // This works too
于 2012-12-18T23:49:18.993 に答える
0

$paragraphs[0]jqueryオブジェクトをhtml要素にアンラップするため、アクセスできませんdetach(jquery関数)。

段落を繰り返し処理するか、オブジェクトを再ラップする必要があります。これはうまくいくはずです

var detachParagraph = $paragraphs[0];
$(detachParagraph).detach();
于 2012-12-18T23:48:17.033 に答える
-1

フィルター関数を使用できます: $("p").filter(function(index){ if(index==0){ $(this).detach(); } )};

于 2012-12-19T00:04:56.440 に答える