我正在从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);
}