2016-10-22 1 views
0

data.htmlファイルは以下のように単純です。外部HTMLファイルをDOMツリーとして読み取る方法は?

<table id="test"> 
<tr> 
<td>f1</td> 
<td>f2</td> 
</tr> 
<tr> 
<td>y</td> 
<td>70</td> 
</tr> 
</table> 

私はそれをFileReaderで読むことができます。


 
function readAsText(){ 
 
    var file = document.getElementById("file").files[0]; 
 
    var reader = new FileReader(); 
 
    reader.readAsText(file); 
 
    reader.onload=function(){ 
 
     _table=this.result; 
 
     alert(_table); 
 
    } 
 
} 
 
<p> 
 
    <label>to select a file</label> 
 
    <input type="file" id="file" /> 
 
    <input type="button" value="read as text" onclick="readAsText()" /> 
 
</p>

enter image description here enter image description here
Data.HTMLには、DOMツリーとしてそれを読み込む方法を、テキストファイルではないDOMツリーとして読み取ることができますか?
data.htmlファイルの行番号を取得するにはどうすればよいですか?
_table.rows.length _tableがdomツリーではないため行番号を取得できません。操作するDOMツリーに変更することはできますか?

 _table=this.result; 
     alert(_table.rows.length); 

答えて

2

DOMParser APIだけではない:

var markup = '<table id="test">'+ 
 
'<tr>'+ 
 
'<td>f1</td>'+ 
 
'<td>f2</td>'+ 
 
'</tr>'+ 
 
'<tr>'+ 
 
'<td>y</td>'+ 
 
'<td>70</td>'+ 
 
'</tr>'+ 
 
'</table>'; 
 

 
var parsedDoc = new DOMParser().parseFromString(markup, 'text/html'); 
 
console.log('number of rows:', parsedDoc.getElementById('test').rows.length) 
 

 
console.log('textContent of the fourth td:',parsedDoc.querySelectorAll('td')[3].textContent);

1

jquery loadメソッドを使用してください。

$('#someDivId').load('some-file.html'); 

jQuery load

+0

ユーザファイルから、あなたは最初にそれをエンコードするためにFileReaderのを使用する必要がありますデータ – Kaiido

関連する問題