Размещение <div>внутри <td>динамически с использованием Jquery (vai xml parsing) - PullRequest
1 голос
/ 21 декабря 2011

мне нужно получить идентификатор 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);
    //This function draws progressbar of "value1" in the div whose id is "newID"
});

теоретически, эта функция должна добавить строку в таблицу, имеющую две ячейки 1. какое отображаемое значение 2. индикатор этой величины.

но я думаю, у него есть проблема с 'id' из 'Div'. и "newID" является строкой, а не 'id' любого объекта

Кто-нибудь может мне помочь в этом ???
Пожалуйста, скажите мне, как я могу нарисовать желаемую таблицу (т.е. с прогрессбаром в одной ячейке)

код drawBar ()

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

Функция drawbar просто рисует индикатор прогресса jqueryUI в DIv, который он получает в «eid»

Ответы [ 3 ]

1 голос
/ 21 декабря 2011

привет, я видел твой код и обнаружил, что ты не закрыл тег 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.

0 голосов
/ 21 декабря 2011

я думаю, что этот код неправильный

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

пожалуйста, измените его на

<div id='+newID+'></div>
0 голосов
/ 21 декабря 2011

Самый простой способ, который я нашел для генерации достаточно уникального идентификатора в javascript - это получить свойства из объекта Date.

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

для отслеживания созданных идентификаторов вы можете использовать массив

var _ids= new Array();

...

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

тогда, когда вам нужно получить доступ к div, вы можете просто пройти через массив

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...