我有一个很长的XML文件.下面是我用来检索文件然后使用jQuery的.each()遍历文件的代码,输出正确的信息:
$(document).ready(function(){
$.ajax({
type: "GET",
url: "data.xml",
dataType: "xml",
success: function(xml) {
$(xml).find('Table').each(function(index){
var provider = $(this).find('Provider').text();
var channel = $(this).find('FeedCommonName').text();
var hd = $(this).find('FeedIsHD').text();
$('.box ul').append('<li>'+channel+'</li>');
});
}
});
});
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是代码只给了我31元素.我添加了索引变量来查看它,它给了我一个从0到30的索引.所以有一些限制只有.each()上升到索引30,如果是这样,还有另一种方法来浏览XML文件吗?谢谢.
编辑:解决,至少现在.XML文件中有&,它阻止了处理.我想再次提醒您验证源文件.
好吧,我已经尝试了多种方法,并寻找答案,我似乎无法让它工作.我想要做的是有一些动态生成的图像,所以我不知道随时会有多少图像.每个图像都有一些相关的信息,我存储在一个单独的div中.我想要做的是将click事件附加到每个图像,该事件将取消隐藏其中包含相关内容的div.
我尝试使用for循环和while循环进行循环,但无济于事.两者都发生了什么,它们将点击事件附加在一起,但无论点击图像,同样的div总是打开,没有与图像相关联的div.
var cnt = jQuery('#container img').length;
cnt = cnt - 1;
var i = 0
for(i=0; i<=cnt; i++) {
jQuery('#container img').eq(i).click(function() {
jQuery('.movie' + 1).slideDown();
jQuery('#sort').hide();
});
}
while(i<=cnt) {
jQuery('#container img').eq(i).click(function() {
jQuery('.movie' + i).slideDown();
jQuery('#sort').hide();
});
i++
Run Code Online (Sandbox Code Playgroud)
}
以上是我尝试过的两种不同的变化.第二个没有在这里定义的变量,但在我的代码中他们做了.我正在做的是计算我有多少图像(var cnt),然后使用它来循环正确的次数.我假设必须在点击功能中弄乱一些东西,因为它将它附加到每个图像中,但得到错误的div.
编辑:
根据一些评论,我尝试将我的结构更改为:
<div id="container">
<img />
<img />
<div class="expanded">
// Info Goes Here
</div>
<div class="expanded">
// Info Goes Here
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
然后我尝试了代码:
jQuery(document).ready(function() {
jQuery('#container img').click(function () {
jQuery(this).next('div.expanded').show();
});
});
Run Code Online (Sandbox Code Playgroud)
但它也不起作用.第一个图像什么都不做,第二个图像显示错误的div.