2012-06-27 2 views
0

У меня есть одна таблица со строкой. И я хочу добавить столбец в строку с возможным условием моего скрипта с jquery. Это мой пример кода:Добавить элемент в таблицу по jquery

<script type="text/javascript" language="javascript"> 
    function loadContent() { 
    var $parent = $("#productlist").empty(); //empty div 
    $parent.append('<br /><table id="myTable" cellpadding="0" cellspacing="0" width="100%" class="productlist" style="margin-left:4px; padding-top:2px;"><tbody></tbody></table>'); 
    if (k % 3 == 0 && k == 0) { 
     var $table = $parent.find("#myTable > tbody"); 
     var htmlRow = [ 
         '<tr align="center">', 
         '<td align="center" id="colunm-product">', 
         //some data 
         '</td>']; 
     $table.append(htmlRow.join('')); 
    } else if ((k % 3 == 0) && (k != 0)) { 
     //add more <td> 
    } else { 
     //close </tr> 
    } 
</script> 

Могу ли я создать <tr> и добавить больше <td>, когда в возможном состоянии, я буду добавлять </tr>?

Любые комментарии, пожалуйста?

+0

где 'k' и каково его первоначальное значение? – thecodeparadox

+0

Это мое условие, но я хочу добавить '', а затем закрыть его с условием. Могу ли я открыть тег '' без его немедленного закрытия? – Nothing

+0

перед открытием нового 'tr', вам нужно закрыть предыдущий – thecodeparadox

ответ

1
var htmlRow = []; 
if (k % 3 == 0 && k == 0) { 
    var $table = $parent.find("#myTable > tbody"); 
    htmlRow.push(
     '<tr align="center">', 
     '<td align="center" id="colunm-product">some data</td>'); 
    } else if ((k % 3 == 0) && (k != 0)) { 
     htmlRow.push('<td align="center" id="colunm-product-2">Data 1</td>', 
        '<td align="center" id="colunm-product-3">Data 2</td>', 
        '<td align="center" id="colunm-product-2">Data 3</td>'); 
    } else { 
     htmlRow.push('</tr>'); 
     $table.append(htmlRow.join('')); 
    } 

ИЛИ вы конкатенация

var htmlRow = ''; 
if (k % 3 == 0 && k == 0) { 
    var $table = $parent.find("#myTable > tbody"); 
    htmlRow += '<tr align="center">'+ 
       '<td align="center" id="colunm-product">some data</td>'; 
} else if ((k % 3 == 0) && (k != 0)) { 
    htmlRow += 
     '<td align="center" id="colunm-product-2">Data 1</td>'+ 
     '<td align="center" id="colunm-product-3">Data 2</td>'+ 
     '<td align="center" id="colunm-product-2">Data 3</td>'; 
} else { 
    htmlRow += '</tr>'; 
    $table.append(htmlRow); 
} 

Working sample

+0

@thecodeparadox ... вы не можете добавить фрагмент закрывающего тега, строка должна быть закрыта перед первым добавлением, четко указано в API – charlietfl

+0

@socheata проверить мой ответ на обновление, вы должны сделать небольшое изменение, как указано выше, и вы можете достичь ваша цель – thecodeparadox

+0

@charlietfl благодарит вас за предложение, приятель. – thecodeparadox

1

Вы должны построить строку как объект jQuery, а затем добавить дополнительный <td>, если потребуется.

затем, наконец, добавить строку к таблице.

if (k % 3 == 0) { 
    var $table = $parent.find("#myTable > tbody"); 
    // htmlRow as jQuery object. 
    var htmlRow = $([ 
    '<tr align="center">', 
     '<td align="center" id="colunm-product">', 
      //some data 
     '</td>', 
    '</tr>'].join('') 
    ); 

    if(k != 0) { 
    htmlRow.append([ 
     '<td>', 
     // More Data 
     '</td>' 
     ].join('')); 
    } 

    // Add completed row here 
    $table.append(htmlRow); 
} 
+0

Спасибо за ваш ответ, но когда я написал это, результатом будет '[object Object]'. – Nothing

Смежные вопросы