2011-10-20 142 views
1

我刚开始学习js并需要您的帮助。XML过滤器应用于非XML值

我有下面的代码:

<html> 
<head> 
<title>test</title> 
    <script src="jquery-1.4.2.min.js" type="text/javascript"></script> 
    <script type="text/javascript"> 
     $(function() { 
      $('.test1').(function(){ 
        this.each(function() { 
        var a = $(this); 
        alert(a); 
       }); 

      }); 
     }); 
    </script> 
</head> 
<body> 
<pre class="test1"> 
blabla1 
blabla2 
blabla3 
</pre> 
</body> 
</html> 

有了这个代码,我想弄清楚如何“每个”会分割预标记的内容。以下错误消息Firebug的回报:

XML过滤器适用于非XML值

错误是由该命令引起的:

$('.test1').(function(){... 

我在做什么错?

非常感谢提前!

回答

0

如果你真的想看看.each作品在你的榜样,更改代码:

$(function() { 
    $('.test1').each(function(){ 
     var a = $(this); 
     alert(a.html()); 
    }); 
}); 

然而,像@James_Johnson早些时候说,在.each函数的代码将只执行一次,所以你可能会看到

blabla1 
blabla2 
blabla3 

在警报消息

为了使.each迭代,你必须这样做:

<html> 
    <head> 
     <title>test</title> 
     <script src="jquery-1.4.2.min.js" type="text/javascript"></script> 
     <script type="text/javascript"> 
       $(function() { 
        $('.test1 p').each(function(){ 
         var a = $(this); 
         alert(a.html()); 
        }); 
       }); 
     </script> 
    </head> 
    <body> 
     <pre class="test1"> 
      <p>blabla1</p> 
      <p>blabla2</p> 
      <p>blabla3</p> 
     </pre> 
    </body> 
</html> 
0

<pre>标签中唯一的标签是文本,所以在这种情况下不需要each()。尝试这样的代替:

<script type="text/javascript"> 
    $(function(){ 
     alert($(".test1").text()); 
    }); 
</script> 
0

如果你真的想要文本分解,你可以试试这个。

$.each($('.test1').text().split('\n'), function(index,value){ 
    alert(value); 
});