2012-04-11 9 views
4

私はresponseというjavascript変数を持っています。これはajax呼び出しからの応答です。jQueryでhtml文字列の一部を取得する

<table id="ListCompanies" class="zebra-striped"> 

<thead> 
    <tr> 
     <th>Nom de la societe</th> 
     <th>Ville</th> 
     <th>Rue</th> 
     <th width="70"><a class="btn primary small createCompany" href="/PLATON/Admin/Company/Create">[+] Nouvelle societe</a> </th> 
    </tr> 
</thead> 

<tbody> 
     <tr id="13"> 
      <td>INDUSTRIAL DEFENDER INC</td> 
      <td>FOXBOROUGH</td> 
      <td>Chestnut Street</td> 

      <td nowrap>          
       <a class="btn small editCompany" href="/PLATON/Admin/Company/Edit/13" id="13">Modifier</a> 
       <a class="btn small deleteCompany" href="/PLATON/Admin/Company/Delete/13" id="13">Supprimer</a> 
      </td> 
     </tr> 
     <tr id="14"> 
      <td>INC CRANE NUCLEAR</td> 
      <td>GEORGIA KENNESAW</td> 
      <td>cobb International Blvd</td> 

      <td nowrap>          
       <a class="btn small editCompany" href="/PLATON/Admin/Company/Edit/14" id="14">Modifier</a> 
       <a class="btn small deleteCompany" href="/PLATON/Admin/Company/Delete/14" id="14">Supprimer</a> 
      </td> 
     </tr> 
</tbody> 

</table> 



<a href="/PLATON/Admin/Company/RowsList?page=3" id="LoadMoreLink">Load more</a> 

alert($("tbody", response).html());は私を与える:私にとっては大丈夫だ

 <tr id="13"> 
      <td>INDUSTRIAL DEFENDER INC</td> 
      <td>FOXBOROUGH</td> 
      <td>Chestnut Street</td> 

      <td nowrap>          
       <a class="btn small editCompany" href="/PLATON/Admin/Company/Edit/13" id="13">Modifier</a> 
       <a class="btn small deleteCompany" href="/PLATON/Admin/Company/Delete/13" id="13">Supprimer</a> 
      </td> 
     </tr> 
     <tr id="14"> 
      <td>INC CRANE NUCLEAR</td> 
      <td>GEORGIA KENNESAW</td> 
      <td>cobb International Blvd</td> 

      <td nowrap>          
       <a class="btn small editCompany" href="/PLATON/Admin/Company/Edit/14" id="14">Modifier</a> 
       <a class="btn small deleteCompany" href="/PLATON/Admin/Company/Delete/14" id="14">Supprimer</a> 
      </td> 
     </tr> 

この変数は、以下の内容があります。

応答変数の末尾にある#LoadMoreLinkのリンクを取得するにはどうすればよいですか?

私が試した:

alert($("#LoadMoreLink",response)); 

をしかし、それは動作しませんでした。

答えて

4

responseには、2つの「親」要素、<table>、および<a>が含まれています。 $(response)は、2つの要素を持つjQueryオブジェクトを作成します。あなたが欲しいものを取得するには、これを試してください:.findは子供だけではなく、「親」要素自体を検索するよう

$(response).filter('#LoadMoreLink') 

.find

は、ここでは動作しません。 「親」要素を検索するには、 .filterを使用する必要があります。

( "parent"要素とは、実際にはjQueryオブジェクト内にある要素を意味します)。

+0

あなたは私に正しい方向を指摘しました。 $(response).filter( '#LoadMoreLink')[0] .outerHTMLは私に何が欲しいのですか?質問:なぜ[0] .outerHTMLを追加する必要がありますか?とにかくありがとう。 – Bronzato

+0

@Bronzato jQueryの選択は、DOM要素自体ではなく、DOM要素の特殊な配列なので、 '[0]'が必要です。代わりに '.html()'を使用してHTMLを取得してください。 – Phrogz

+0

@Bronzato: '[0]'はjQueryオブジェクトのネイティブDOM要素を取得し、 'outerHTML'は要素自体を取得しますが、' .html() '(' innerHTML'は要素の内容を取得します。 –

0
$("a", response).filter("[id='LoadMoreLink']") 

必要があります。私はjQueryが "#LoadMoreLink"が(まだDOMにロードされていない)IDの要素のDOMハッシュにアクセスしようとしているので、通常の検索は失敗していると思います。

+0

これは動作しません。運がない。 – Bronzato

+0

try $( "a:last"、response) – devstruck

+0

要素がDOMにあるかどうかは関係ありません。 '#ID'は同じように動作します。 –

0

何も問題がなければ、非表示のdivに応答を読み込んで$( "#LoadMoreLink")を取得してください。

関連する問題