2017-07-28 84 views
0

我有点迷失在搞清楚JavaScript的逻辑。JavaScript给元素键阵列

目前,我提取每个元素并将它们推入数组。

当我想要访问对象元素时,我很困难。

这是在文本文件中的数据:

1#1#test#Tombstone#8#Yes 
2#3#test2#Tombstone3#81#Yes 

当我访问第一阵列rowCells[0]。它返回我

1 
2 

这是第一列本身。

我希望它能返回第一行。预期功能如下:

1-推一切阵列

2-给予像第一列元件键是no,type,header,content,score

3-搜索所有基于元素键的行如type=2

4-根据类型搜索,然后显示内容。

有什么建议吗? 在此先感谢。

<script type="text/javascript" 
    src="http://code.jquery.com/jquery-1.10.1.min.js"></script> 

<script> 
$.ajax({ 
    url: 'content.txt', 
    dataType: 'text', 
}).done(successFunction); 


function successFunction(data) { 
    var allRows = data.split(/\r?\n|\r/); 
    var table = '<table>'; 
    for (var singleRow = 0; singleRow < allRows.length; singleRow++) { 
    var rowCells = allRows[singleRow].split('#'); 
    //table += rowCells.toString(); 

    table += '<br>'; 
    var first_word = rowCells; 
    table += first_word; 


    } 
    $('body').append(table); 
} 
</script> 
+0

为什么一台具有br标签? – epascarello

+0

@epascarello测试行内容,这是多余的。 – FreedomPride

回答

1

我只是用split,reduce,split和join来构建表。

var str = `1#1#test#Tombstone#8#Yes 
 
2#3#test2#Tombstone3#81#Yes` 
 

 
var rows = str.split(/\n/g).reduce(function (str, row) { 
 
    return str + "<tr><td>" + row.split(/#/g).join("</td><td>") + "</td></tr>"; 
 
}, "") 
 

 
var table = "<table><tbody>" + rows + "</tbody></table>" 
 
$("#out").append(table)
td { border: 1px solid black; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="out"></div>

+0

真的很感谢您的回答,但让我们假设如果我只想显示特定元素,例如type = 3。因此,生病需要将元素推到一个关键点,以便我匹配标准,然后只将它放入表格中。 – FreedomPride

+0

所以当你生成它时添加一条if语句。 'var cells = row.split(/#/ g); if(cells [0] ==“2”){} else {}' – epascarello