2013-07-09 31 views
1

如何循環遍歷每個href元素,然後從div Foo開始從href獲取文本。使用jquery從div開始循環遍歷href標籤

基本上我想通過循環值你好,世界,ACC,銷售等

<div id="Foo"> 
    <div class="Moo"> 
     <ul> 
     <li> 
      <a href="http://www.test.com/b5">Hello</a> 
     </li> 
     <li> 
      <a href="http://www.test.com/b6">World</a> 
     </li> 
     <li> 
      <a href="http://www.test.com/b7">Acc</a> 
     </li> 
     <li> 
      <a href="http://www.test.com/b8">Sale</a> 
     </li> 
     </ul> 
    </div> 
</div> 

AAAAH WHAT THE HELL這種語言我發瘋。這是怎麼回事?我基本上指向的對象,並通過每一個A.

$('#Foo').find('.Moo ul li').find('a').each(function(){ 
    alert($(this).text); 
});  

這也不行說循環。

$('#Foo.Moo ul li a').each(function(){ 
    alert($(this).text); 
});  

也不是這樣,他們只是不斷返回JavaScript而不是a標籤的值。

('#Foo .Moo ul li a').each(function(){ 
    alert($(this).text); 
}); 
+0

你只是缺少'()'函數名後要調用的函數。這是基本的編程語法。 – Barmar

回答

3

嘗試像

$("#Foo .Moo ul li a").each(function(){ 
    alert($(this).text()); 
}); 

從您的代碼可能喜歡

$('#Foo').find('.Moo ul li').find('a').each(function(){ 
    alert($(this).text()); 
});  

這就像.text()不喜歡.text和適當的HTML像

<div id="Foo"> 
<div class="Moo"> 
    <ul> 
     <li> 
     <a href="http://www.test.com/b5">Hello</a> 
     <ul>     
      <li> 
      <a href="http://www.test.com/b6">World</a> 
      </li> 
      <ul> 
       <li> 
       <a href="http://www.test.com/b7">Acc</a> 
       </li> 
       <li> 
       <a href="http://www.test.com/b8">Sale</a> 
       </li> 
      </ul> 
      </ul> 
      </li> 
     </ul> 
     </div> 
    </div> 
+2

他的html無效。你的解決方案不會幫助 –

+0

男人我真的需要一個超快速的編輯器來糾正這個問題。 Netbeans需要很長時間才能打開。 – bentley5

+0

是的,我已經編輯它.... plz看到我的答案 – Gautam3164

1

你html i s無效

<div id="Foo"> 
    <div class="Moo"> 
     <ul> 
      <li> 
      <a href="http://www.test.com/b5">Hello</a> 
      <ul> 
       </li> 
       <li> 
       <a href="http://www.test.com/b6">World</a> 
       <ul> 
        </li> 
        <li> 
        <a href="http://www.test.com/b7">Acc</a> 
        </li> 
        <li> 
        <a href="http://www.test.com/b8">Sale</a> 
        </li> 
       </ul> 
      </div> 
     </div> 

這可能是原因。

修復它,然後重新問。

,那麼你可以這樣做:

$('#Foo .Moo ul li a').each(function(){ 
    alert($(this).text()); 
}); 
+0

但是你的JS仍然是錯誤的。文本不是一個功能。 – mohkhan

+0

@mohkhan yup。 (這就是當你粘貼得太快時發生的事情):) –

0

你的HTML是無效的,所以這個行不通。中間刪除不需要的<ul>

<div id="Foo"> 
    <div class="Moo"> 
     <ul> 
      <li> 
<a href="http://www.test.com/b5">Hello</a> 

      </li> 
      <li> 
<a href="http://www.test.com/b6">World</a> 

      </li> 
      <li> 
<a href="http://www.test.com/b7">Acc</a> 

      </li> 
      <li> 
<a href="http://www.test.com/b8">Sale</a> 

      </li> 
     </ul> 
    </div> 
</div> 

然後,您可以使用map()遍歷<a>和獲取文本,店裏就在數組中。

var aText = $("#Foo a").map(function() { 
    return this.innerHTML; 
}).get(); 
alert(JSON.stringify(aText)); //not needed. You could access that text like this : aText[i] where i = 0|1|2 

演示:http://jsfiddle.net/hungerpain/WG2Hg/

+0

Json.stringify ...哦,男孩..... –

+0

這只是爲了顯示它在一個警報.. – krishgopinath