0

我从 XML“项目”节点 #Option_Base-Shirt 和 #Option_Open-Main-Fabric-Collar 创建了两个 div。我希望这两个 div 由“子”div 填充,因此#Base-Shirt 将有一个子 div,而 #Option_Open-Main-Fabric-Collar 将有两个子 div。目前,每个 Item div 都有所有三个子 div。

XML

<Item name="None" title="Base-Shirt" alt="jpg">
  <Sub name="Pique" title="Open-Main-Fabric-Collar" alt="png"></Sub>
</Item>

<Item name="Pique" title="Open-Main-Fabric-Collar" alt="png">
  <Sub name="Jersey" title="Outside-Pocket-Left" alt="png"></Sub>
  <Sub name="Main" title="Pocket" alt="png"></Sub>
</Item>

Javascript

//Add Subs to Option div
$(document).find("Sub").each(function(){
  for (var i=0; i<=NumberItems; i++) {
    $("#Option_"+ItemNames[i])
      .append('<div class="Sub" id="' + $(this)
      .attr('title') +'"></div>');
  }
});

我认为它应该是这样的,但这仍然将所有三个 div 放在每个项目 div 中:

 //Add Subs to Option div
 $(document).find("Item").each(function(){
  for (var i=0; i<=NumberItems; i++) {
    $(this).find("Sub").each(function(){

            $("#Option_"+ItemNames[i]).append('<div class="Sub" id="' +   $(this).attr('title') +'"></div>');

    });
    }
});

获取 XML:

$(document).ready(function(){
// Load XML
$.ajax({
    url: 'data.xml',
    dataType: "xml",
    success: parse,
    error: function(){alert("Error: Something wrong with XML");}
});

 function parse(document){

//Get all item names Var=ItemNames (Base_Shit, Collar...)
$(document).find("Item").each(function(){
4

1 回答 1

0

这似乎可行,我将函数放在我正在创建项目 div 的函数中。抱歉,我可能没有很好地解释我的问题。

$(document).find("Item").each(function(){
    $(".Button").append('<div class="Item" id="' + $(this).attr('title') +'" name="' + $(this).attr('name') +'" alt="' + $(this).attr('alt') +'"><span>'+$(this).attr('title').replace(/\-/g, ' ')+'</span><div class="Fabric" id="Fabric_' + $(this).attr('title') +'"></div><div id="Option_' + $(this).attr('title') +'" class="Option"></div></div>');

    $(this).find("Sub").each(function(){
            $("#Option_"+$(this).parent().attr('title')).append('<div class="Sub" id="' + $(this).attr('title') +'"></div>');
    });


});
于 2013-06-13T22:45:42.750 回答