XML过滤器应用于非XML值

时间:2011-10-20 22:19:00

标签: javascript jquery each

我刚开始学习js并需要你的帮助。

我有以下代码:

<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>

使用此代码,我想了解“each”将如何拆分预标签的内容。 Firebug返回以下错误消息:

  

XML过滤器应用于非XML值

错误是由以下命令引起的:

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

我做错了什么?

非常感谢提前!

3 个答案:

答案 0 :(得分:0)

<pre>标记内部唯一的内容是文字,因此在这种情况下不需要each()。尝试这样的事情:

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

答案 1 :(得分:0)

如果你真的希望文本细分,你可以试试这个。

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

答案 2 :(得分: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>