问题描述
|
我是XML的新手。当我尝试在其XML父项(称为ITEM)中放入一些“例”时,它会填入所有的ITEMS,并复制某些内容。我有6个案例,但不知何故,其中一个项目显示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>\");
});
我究竟做错了什么???
先感谢您...
解决方法
那行:
if ($(xml).find(\'case\').length != 0) {
[...]
$(xml).find(\'case\').each(function(){
应该
if ((this).find(\'case\').length != 0) {
[...]
(this).find(\'case\').each(function(){
或类似的东西(我没有测试)。
现在,您在xml中进行搜索,在item元素上循环,然后在xml中而不是当前item元素中搜索case元素...。
, 问题是,我两次调用(XML)。
第二次(及之后)调用“如果(XML)\”,请改用“”(this)\”。
更改:
if ($(xml).find
至:
if ($(this).find
对我来说就做到了。