1

我正在尝试计算名为 file.xml 的远程页面上的 li 元素的数量。我究竟做错了什么?很抱歉这个简单的问题,但我就是想不通。

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

1 回答 1

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/

于 2012-10-11T18:19:54.650 回答