2012-07-10 111 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