这个jquery不会在另一个页面上计算li元素吗?

时间:2012-10-11 18:17:16

标签: jquery

我正在尝试计算远程页面上li元素的数量,称为file.xml。我究竟做错了什么?很抱歉这个简单的问题,但我无法解决这个问题。

使用Javascript:

<script>
$(document).ready(function(){
$.get('/file.xml', function(data)
{
var allslides = $(data).find('li'),
var slidenumber = $allslides.length;
alert(slidenumber);
});
});
</script>  

HTML(file.xml的内容):

    <body>
    <li><h2>Headline1</h2><span class="desctext">Description</span></li>
    <li><h2>Headline2</h2><span class="desctext">Description</span></li>
    <li><h2>Headline3</h2><span class="desctext">Description</span></li>
</body>

1 个答案:

答案 0 :(得分:2)

尝试指定您正在加载XML文件:

$.ajax({
    url      : '/file.xml',
    dataType : 'xml',
    success  : function (data) {
       var $allslides = $(data).find('li'),
           slidenumber = $allslides.length;
       alert(slidenumber);
    },
    error    : function () { /* don't forget to handle errors */ }
});

另外,我注意到您的变量名称并不匹配,首先使用allslides,然后使用$allslides。我在示例代码中规范化了那些变量名。

它看起来像是在返回HTML而不是XML。哪个可行,只需将dataType : 'xml'更改为dataType : 'html'(或将选项留空,因为html是默认选项)。在一般意义上,指定内容类型而不是让jQuery自己猜测是一个好主意。

$.ajax()的文档:http://api.jquery.com/jquery.ajax/