我是XML的新手。当我尝试将一些“案例”放入它的XML-parent(称为ITEM)时,它会填充所有的ITEMS,并在某些项目上进行公开。我有6个案例,但不知何故,它在其中一个ITEM中显示了12个案例。
我有一个XML文件,如下所示:
<menu>
<item>
<headline />
<body />
<cases>
<case><link /></case>
<case><link /></case>
<case><link /></case>
<case><link /></case>
<case><link /></case>
<case><link /></case>
<case><link /></case>
</cases>
</item>
<item>
<headline />
<body />
</item>
在没有任何案件的ITEM上,我不希望显示任何案例。我只希望将案件“放入”正确的ITEM中。
我该怎么做?
要显示项目,我使用:
$(xml).find('item').each(function(){
var headline = $("headline", this).text();
$("ul").append("<li class='" + name + "'><h3>" + headline + "</h3>");
if ($(xml).find('case').length != 0) {
//I want it to place this, in the correct ITEM, and not in all items.
$("ul li").append("<ul class='cases'>");
$(xml).find('case').each(function(){
caseLink = $("link", this).text();
$("ul li .cases").append("<li><a href='" + caseLink + "' /></a></li>");
});
$("ul li").append("</ul>");
}
$("ul").append("</li>");
});
我做错了什么???
提前谢谢你......
答案 0 :(得分:0)
those line:
if ($(xml).find('case').length != 0) {
[...]
$(xml).find('case').each(function(){
应该是
if ((this).find('case').length != 0) {
[...]
(this).find('case').each(function(){
或类似的东西(我没有测试过)。
现在,您在 xml 内搜索,在项元素上循环,然后在案例元素 ... > xml 而不是当前的项元素。
答案 1 :(得分:0)
问题是,我两次调用(XML)。
调用“if(XML)”的第二个(及以下)时间,改为使用“(this)”。
变化:
if ($(xml).find
要:
if ($(this).find
这是为我做的。