2009-09-24 24 views
50

jQueryの使用方法1つの子要素を選択するにはどうすればよいですか?jQueryを使用して単一の子要素を選択する方法は?

$(this).children('img')[0]; 
:私はこのような添字を使用することができ

$(this).children('img'); 

と第一子img要素を選択するために:私はトラバースAPIを見て、私はすべての直接の子にこのようなimg要素を選択することができます知っていました

しかし、私は私がこれを行うことはできません種類の驚いていると思います:

$(this).child('img'); // no subscript, returns single element 

それとも私が何かを見逃していますか?

$(this).children('img')[0]; 

はあなたにimg要素自体を与えるのに対し、

$(this).children('img').eq(0); 

これはあなたの最初のimg要素を含むjQueryオブジェクトを与える:

答えて

32

いいえすべてのjQuery関数はjQueryオブジェクトを返します。それはどのように動作するかです。これはjQueryの魔法の重要な部分です。

あなたが根底にある要素にアクセスしたい場合は、次の3つのオプション...

  1. あなたがやりたいのjQueryを拡張
  2. にそれを参照するようにjQueryの

  3. 使用[0]を使用しないでくださいを持っています。 ..

    $.fn.child = function(s) { 
        return $(this).children(s)[0]; 
    } 
    
+0

ああ!それはそれだった。 jQueryオブジェクトの代わりにimg要素(その 'src'プロパティを参照しようとしています)を期待していました。今度は'attr() 'を使って' src 'プロパティを取得します。 –

+0

3)もありがとう。私はそれを検討するかもしれない。 :) –

+6

いいえ、たとえば 'find(" div ")[0]'を使用すると、 'div'をjQueryオブジェクトとして取得しません。 HTMLElementとして 'div'を取得します。 'div'をjQueryオブジェクトとして取得するには、Gregが以下のように' .eq(0) 'を使用しなければなりません。 (}); }()。子( '。dataContentSectionMessages')。slideToggle(); }); – Green

80

は、私が何をやりたいことは、これがあると思います。

+1

最初の答えでfind asを使用すると、すべての子孫要素が得られますが、childは直接の子のみを与えることに注意してください。 – Greg

3

多分このように?

$('img', this)[0] 
+0

これは必ずしも直接の子を選択するとは限りません。受け入れられた答えと同様に、これはjQueryオブジェクトではなく要素を返します。 – Septagram

0
<html> 
<title> 

    </title> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <link rel="stylesheet" type="text/css" href="assets/css/bootstrap.css"> 
<body> 




<!-- <asp:LinkButton ID="MoreInfoButton" runat="server" Text="<%#MoreInfo%>" > --> 
<!-- </asp:LinkButton> --> 
<!-- </asp:LinkButton> --> 

<br /> 
<asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSource1"> 
<div> 
<a><span id="imgDownArrow_0" class="glyphicon glyphicon-chevron-right " runat="server"> MoreInformation</span></a> 
<div id="parent" class="dataContentSectionMessages" style="display:none"> 
    <!-- repeater1 starts --> 
     <!-- <sc:text field="Event Description" runat="server" item="<%#Container.DataItem %>" /> --> 
      <ul > 
       <li ><h6><strong>lorem</strong></h6></li> 
       <li ><h6><strong>An assigned contact who knows you and your lorem analysis system</strong></h6></li> 
       <li ><h6><strong>Internet accessible on-demand information and an easy to use internet shop</strong></h6></li> 
       <li ><h6><strong>Extensive and flexible repair capabilities at any location</strong></h6></li> 
       <li ><h6><strong>Full Service Contracts</strong></h6></li> 
       <li ><h6><strong>Maintenance Contracts</strong></h6></li> 
      </ul> 
    <!-- repeater1 ends --> 
</div> 
</div> 
<div> 
<a><span id="imgDownArrow_0" class="glyphicon glyphicon-chevron-right " runat="server"> MoreInformation</span></a> 
<div id="parent" class="dataContentSectionMessages" style="display:none"> 
    <!-- repeater1 starts --> 
     <!-- <sc:text field="Event Description" runat="server" item="<%#Container.DataItem %>" /> --> 
      <ul > 
       <li ><h6><strong>lorem</strong></h6></li> 
       <li ><h6><strong>An assigned contact who knows you and your lorem analysis system</strong></h6></li> 
       <li ><h6><strong>Internet accessible on-demand information and an easy to use internet shop</strong></h6></li> 
       <li ><h6><strong>Extensive and flexible repair capabilities at any location</strong></h6></li> 
       <li ><h6><strong>Full Service Contracts</strong></h6></li> 
       <li ><h6><strong>Maintenance Contracts</strong></h6></li> 
      </ul> 
    <!-- repeater1 ends --> 
</div> 
</div> 
<div> 
<a><span id="imgDownArrow_0" class="glyphicon glyphicon-chevron-right " runat="server"> MoreInformation</span></a> 
<div id="parent" class="dataContentSectionMessages" style="display:none"> 
    <!-- repeater1 starts --> 
     <!-- <sc:text field="Event Description" runat="server" item="<%#Container.DataItem %>" /> --> 
      <ul > 
       <li ><h6><strong>lorem</strong></h6></li> 
       <li ><h6><strong>An assigned contact who knows you and your lorem analysis system</strong></h6></li> 
       <li ><h6><strong>Internet accessible on-demand information and an easy to use internet shop</strong></h6></li> 
       <li ><h6><strong>Extensive and flexible repair capabilities at any location</strong></h6></li> 
       <li ><h6><strong>Full Service Contracts</strong></h6></li> 
       <li ><h6><strong>Maintenance Contracts</strong></h6></li> 
      </ul> 
    <!-- repeater1 ends --> 
</div> 
</div> 
<div> 
<a><span id="imgDownArrow_0" class="glyphicon glyphicon-chevron-right " runat="server"> MoreInformation</span></a> 
<div id="parent" class="dataContentSectionMessages" style="display:none"> 
    <!-- repeater1 starts --> 
     <!-- <sc:text field="Event Description" runat="server" item="<%#Container.DataItem %>" /> --> 
      <ul > 
       <li ><h6><strong>lorem</strong></h6></li> 
       <li ><h6><strong>An assigned contact who knows you and your lorem analysis system</strong></h6></li> 
       <li ><h6><strong>Internet accessible on-demand information and an easy to use internet shop</strong></h6></li> 
       <li ><h6><strong>Extensive and flexible repair capabilities at any location</strong></h6></li> 
       <li ><h6><strong>Full Service Contracts</strong></h6></li> 
       <li ><h6><strong>Maintenance Contracts</strong></h6></li> 
      </ul> 
    <!-- repeater1 ends --> 
</div> 
</div> 




</asp:Repeater> 


</body> 
<!-- Predefined JavaScript --> 
<script src="jquery.js"></script> 
<script src="bootstrap.js"></script> 

<script> 

$(function() { 
     $('a').click(function() { 
      $(this).parent().children('.dataContentSectionMessages').slideToggle(); 
     }); 
    }); 

    </script> 


</html> 
+0

$ {function {){ $ ;このクエリは、親の子アイテムを取得するのに役立ちます –

関連する問題