2012-04-11 47 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对象。为了得到你想要的,试试这个:

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

.find这里行不通,因为.find只搜索的孩子,而不是“父”元素本身。您需要使用.filter来搜索“父”元素。 (由“父”元素,我的意思是实际上在jQuery对象中的元素)。

+0

你指出我正确的方向。 $(response).filter('#LoadMoreLink')[0] .outerHTML给了我我想要的。问题:为什么我需要添加[0] .outerHTML?不管怎么说,还是要谢谢你。 – Bronzato 2012-04-11 17:56:21

+0

@Bronzato你需要'[0]'因为jQuery选择是DOM元素的特殊数组,而不是DOM元素本身。或者,只需使用'.html()'来获取HTML。 – Phrogz 2012-04-11 17:57:31

+0

@Bronzato:'[0]'从jQuery对象获取本地DOM元素,'outerHTML'获取元素本身,而'.html()'(这是'innerHTML'获取元素的内容 – 2012-04-11 17:58:28

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

应该是你需要的。我认为正常的搜索失败了,因为jQuery试图访问ID为“#LoadMoreLink”的元素的DOM散列(尚未加载到DOM中)。

+0

这是行不通的。没有运气。 – Bronzato 2012-04-11 17:47:05

+0

尝试$(“a:last”,响应) – devstruck 2012-04-11 17:47:42

+0

元素是否在DOM中并不重要,'#ID'的行为是相同的。 – 2012-04-11 17:51:01

0

如果什么都行不通,只需在隐藏的div中加载响应,然后检索$(“#LoadMoreLink”)