【发布时间】:2020-11-22 19:40:37
【问题描述】:
您能告诉我如何使用 jquery 获取任何 html 表格的元素值吗?我可以获得 textarea 值或 td 值,但我想同时检索这两者以及更多的未来。现在我无法将修改后的 textarea 值保存在本地文件中
注意:该表通常应该来自导入一个json文件,该文件将与本地js服务器一起保存在本地
<html>
<head>
<title>Rockin' Page</title>
<script type="text/javascript" src="jquery-3.5.1.js"></script>
</head>
<body>
<textarea id="textbox">Type something here</textarea> <button id="create">Sauvegarder</button> <a download="info.txt" id="downloadlink" style="display: none">Download</a>
<table id="example-table" class="table table-striped">
<thead>
<tr><th>Column 1</th><th>Column 2</th><th>Column 3</th></tr>
</thead>
<tbody>
<tr id"pop1"><td><textarea class="textbox" id="col1">bla bla A1</textarea></td><td><textarea id="textbox">bla bla B1</textarea></td><td><textarea id="textbox">bla bla C1</textarea></td></tr>
<tr id"pop2"><td><textarea class="textbox" id="col2">bla bla A2</textarea></td><td><textarea id="textbox">bla bla B2</textarea></td><td><textarea id="textbox">bla bla C2</textarea></td></tr>
<tr id"pop3"><td><textarea class="textbox" id="col3">bla bla A3</textarea></td><td><textarea id="textbox">bla bla B3</textarea></td><td><textarea id="textbox">bla bla C3</textarea></td></tr>
<tr><td>A4</td><td>B4</td><td>C4</td></tr>
</tbody>
</table>
</body>
<script type="text/javascript">
(function Enregistrer() {
var textFile = null,
makeTextFile = function (text) {
var formattedText = text.replace(/\n/g, '\r\n') // garde les retours à la ligne in textarea
var data = new Blob([formattedText], {type: 'text/plain'});
if (textFile !== null) {
window.URL.revokeObjectURL(textFile);
}
textFile = window.URL.createObjectURL(data);
return textFile;
};
var create = document.getElementById('create'),
textbox = document.getElementById('textbox');
create.addEventListener('click', function () {
var link = document.createElement('a');
link.setAttribute('download', 'info.txt'); // nom fichier enregistré downloadé
link.href = makeTextFile(textbox.value+'\n '+ParseurTable()); // collecte données à enregistrer
document.body.appendChild(link);
window.requestAnimationFrame(function () {
var event = new MouseEvent('click');
link.dispatchEvent(event);
document.body.removeChild(link);
});
}, false);
})();
function ParseurTable(){
var myRows = [];
var $headers = $("th");
var $rows = $("tbody tr").each(function(index) {
$cells = $(this).find("textarea"),$(this).find("td");
myRows[index] = {};
$cells.each(function(cellIndex) {
myRows[index][$($headers[cellIndex]).html()] = $(this).html();
});
});
var myObj = {};
myObj.myrows = myRows;
return JSON.stringify(myObj);
}
</script>
</html>
【问题讨论】:
-
有一种方法可以通过调用 jquery 函数
is()来查看元素是什么,例如$("<div></div>").is("div")将返回true。然后您可以运行此类检查以确定持有元素是什么以及值应该如何提取。 -
好的,谢谢,我试试
标签: javascript html jquery textarea