2014-11-24 37 views
0

我創建使用JavaScript的HTML表:如何從HTML字符串表中獲取行動態創建?

function CreateArray(){ 
    var arr = []; 
    for(var i = 0 ; i < 10; i++){  
    arr.push({ 
     firstName:"John", 
     lastName:"Doe", 
     email:"email"+i.toString()+"@gmail.com" 
    }); 
    } 
    return arr; 
} 

function CreateTable(data) { 
    var tableStr = []; 
    var j = -1; 

    tableStr[++j] = '<table class="tftable" border="1"><thead><tr><th><input type="checkbox" id="allEmails" onclick = "SelectAllEmails()"/></th><th>First Name</th><th>Family Name</th><th>Email</th></tr></thead><tbody>'; 

    for (var i = 0; i < data.length; i++) { 
    tableStr[++j] = '<tr><td>'; 
    tableStr[++j] = '<input type= "checkbox"'; 
    tableStr[++j] = 'id =' + "chbxEmail" + i.toString() +" "+'onclick =' + "foo(this)"+" "+'/>'; 
    tableStr[++j] = '</td><td>'; 
    tableStr[++j] = data[i].firstName; 
    tableStr[++j] = '</td><td>'; 
    tableStr[++j] = data[i].lastName; 
    tableStr[++j] = '</td><td>'; 
    tableStr[++j] = data[i].email; 
    tableStr[++j] = '</td></tr>'; 
    } 
    tableStr[++j] = '</tbody></table>'; 
    var table = tableStr.join(''); 
} 

我需要獲得除標題行的HTML表格中的所有行。 我試着這樣說:

var trows = table.getElementsByTagName('tbody')[0].rows; 
alert(trows.length); 

但我沒有得到任何結果。即使警報框不顯示。

如何獲取不含標題行的表變量內的行?

+0

凡被稱爲用警惕的代碼?無論如何,使用像AngularJs或knockoutJs這樣的框架會更好。 – Max 2014-11-24 10:31:58

+0

因爲您的表格尚未在DOM中創建。沒有框架,你只能一個一個地創建DOM元素。 – DontVoteMeDown 2014-11-24 10:34:24

回答

1

使用Javascript

document.querySelectorAll('#table-id tr:not(:first-child)') 

使用Javascript另一種解決方案:

document.getElementById('table-id').children[1].children 

使用jQuery:

$('#table-id tr:not(:first-child)') 
1

的問題是,你可能沒有插入表格的成HTML DOM。否則它應該工作。您也可以考慮使用querySelector函數而不是getElementsByTagName,例如, var rows = document.querySelector('tbody tr');

相關問題