使用Jquery(vai xml解析)</div>动态地将<div>放入内部

时间:2011-12-21 08:24:19

标签: javascript jquery html xml-parsing

我需要获取我正在创建的div的id 我的代码是:

    tab_Div = $ ('#id_of_table')
    $(xml).find('something').each(function(i){
    value1 = $(this).attr('some_attribute');
    newID = "divID_"+i;

    var my_row = $('<tr><td>'+value1+'</td><td><div id="'+newID+'"></div></td></tr>').appendTo(tab_Div);

    drawBar(value1,newID);
    //This function draws progressbar of "value1" in the div whose id is "newID"
});

理论上,此函数应该向具有两个单元格的表添加一行 1.显示值 2.该值的进度条。

但我认为,“Div”的“id”存在问题。并且“newID”是任何obj

的字符串而不是'id'

任何人都可以帮我这个吗? 请告诉我如何绘制所需的表格(即在一个单元格中使用进度条)

drawBar()的代码

function drawBar(no,eid)
    {
        $(eid).progressbar({value: no});
        $(eid).css({background: '#99FF66'});
        $(eid+" > div").css({background: '#009900'});
        $(eid+" > div").css({border: 'none'});
    }

拉杆功能只是将一个jqueryUI进度条绘制到它在“eid”收到的DIv中

3 个答案:

答案 0 :(得分:1)

您好我已经看过您的代码,发现您还没有关闭td中的div标签 编辑:不仅div标签没有关闭,而且你还传递了tab_Div

的表tab_div的错误变量
  tab_Div = $ ('#id_of_table')
    $(xml).find('something').each(function(i){
    value1 = $(this).attr('some_attribute');
    newID = "divID_"+i;

    var my_row = $('<tr><td>'+value1+'</td><td><div id="'+newID+'" ></div></td></tr>').appendTo(tab_Div);

    drawBar(value1,newID);

评论后编辑:

以下是代码:

<body>
<table id="id_of_table" style="width:50%; border:1px solid red; float:left" >
</table>
<script type="text/javascript" >
$(document).ready(function(){

    tab_Div = $ ('#id_of_table');
    for (var i =1; i<=10; i++){
        value1 = "test";
        newID = "divID_"+i;
        $('<tr><td>'+value1+'</td><td><div id="'+newID+'" >i m inside div </div></td></tr>').appendTo(tab_Div);
}
    //drawBar(value1,newID);


});


</script>
</body>

上面的代码工作正常,当你将它附加到表时为什么要将它传递给不需要的变量my_row。在HTML页面中尝试我的代码,记得添加jQuery文件。

答案 1 :(得分:0)

我发现在javascript中生成足够唯一ID的最简单方法是从Date对象获取属性。

var date = new Date();
var id = "" + date.getHour() + date.getMinutes() + date.getSeconds() + date.getMilliseconds();

跟踪已创建的ID,您可以使用数组

var _ids= new Array();

...

$(xml).each(function(i) {
  ...
  newID = "divID_"+i;
  _ids.push(newID);
});

然后,当你需要访问div时,你可以通过数组

答案 2 :(得分:0)

我觉得这段代码错了

<div id="'+newID+'"</div>

请将其更改为

<div id='+newID+'></div>