2012-07-10 156 views
0

我遇到奇怪的問題.each()沒有拿起某些文本/ HTML。

我:

<ul class="errors"> 
    <li class="title">Please check the details you entered and try again.</li> 
    <li id="title">Please supply a title</li> 
    <li id="typeID">Please select a type</li> 
    <li id="availID">Please select the availablilty</li> 
    <li id="city">Please supply a valid city</li> 
    <li id="postcode">Please supply a valid postcode</li> 
    <li id="contactNum">Please supply a valid contact number</li> 
    <li id="description">Please enter a description</li> 
</ul> 

而對於jQuery的:

$('.errors').children('^[id]').each(function(index){ 
    alert(index + ': ' + $(this).text()); 
}); 

現在的問題是,jQuery的不拿起text/html的在 「說明」 列表項。無論我嘗試什麼。

任何想法爲什麼會發生這種情況?

感謝, TMP

更新: 我已經成功地發現問題。在頁面上有另一個具有相同ID的元素停止了它的工作。真是奇怪,因爲所有其他列表項目都是相同的,但工作得很好。也許是一個錯誤?

乾杯, TMP

+0

我不知道,如果'^ [ID]'是[有效的選擇(HTTP:// API .jquery.com /種類/選擇器/)。它定義了什麼? – pimvdb 2012-07-10 16:52:24

+2

http://jsfiddle.net/pbysh/cd59c/ - 我收到了所有我希望得到的警報。 – 2012-07-10 16:53:06

+0

@pimvdb:據我所知,它不是一個有效的選擇器,但它對'[id]'產生相同的結果。 – 2012-07-10 16:53:13

回答

5
alert(index + ': ' + $(this.text()); 

應該

alert(index + ': ' + $(this).text()); 

this後缺少一個右括號。

編輯

隨着那個錯字固定的,我得到預期的結果:http://jsfiddle.net/xQyAt/

+1

Ahh對不起,這是發佈在這裏時的錯字。所有其他列表項目都可以正確讀取。謝謝。 – TMPilot 2012-07-10 16:51:46