我正在从xml文件中提取数据并为该数据调用一些函数,
所有这些过程都在each(function()内部)

我的代码是

$(my_xml_data). find (any_node_from_that_xml) . each(function()
{
  any_variable = $(this).attr ( "any_attribute" );
  draw_a_graph (any_variable, "id_of_DIV_inwhich_graph_gonna_draw");
}


现在我希望每个图都应在每次迭代中都绘制在“ newDIV”中。并且此“ new_DIV”必须与旧的“右”相距50px(意味着我可以编辑新div样式的“左” attr)。

请帮助

最佳答案

您实际上可以为每个DIV(在其上绘制图形)都有一个CSS类,而不是通过JS进行定位。在CSS文件或<style></style>部分中,您可以输入以下内容:

div.graph_div {
  float: left;
  margin-left: 50px;
  /* set other styles as needed */
}


在您的代码中,您可以执行以下操作:

var parentDiv = $('#id_of_your_parent_div')
$(my_xml_data). find (any_node_from_that_xml) . each(function()
{
  any_variable = $(this).attr ( "any_attribute" );
  var graphDiv = $('<div class="graph_div"></div>').appendTo(parentDiv);
  draw_a_graph (any_variable, graphDiv);
}


请注意,上述draw_a_graph函数将元素作为参数而不是ID。如果无法更改draw_a_graph的签名,则可以执行以下操作:

var parentDiv = $('#id_of_your_parent_div')
$(my_xml_data). find (any_node_from_that_xml) . each(function()
{
  var divID = 'graph_'+(Math.random()*1000);
  var graphDiv = $('<div id="'+divID+'" class="graph_div"></div>').appendTo(parentDiv);
  draw_a_graph (any_variable, divID);
}

10-06 04:35