这是我目前的代码
http://codepen.io/anon/pen/qbEGyB
这里特别是JavaScript部分
function readBlob(opt_startByte, opt_stopByte) {
var files = document.getElementById('files').files;
if (!files.length) {
alert('Please select a file!');
return;
}
var file = files[0];
var start = parseInt(opt_startByte) || 0;
var stop = parseInt(opt_stopByte) || file.size - 1;
var reader = new FileReader();
// If we use onloadend, we need to check the readyState.
reader.onloadend = function(evt) {
if (evt.target.readyState == FileReader.DONE) { // DONE == 2
document.getElementById('byte_content').textContent = evt.target.result;
}
};
var blob = file.slice(start, stop + 1);
reader.readAsBinaryString(blob);
}
document.querySelector('.readBytesButtons').addEventListener('click', function(evt) {
if (evt.target.tagName.toLowerCase() == 'button') {
var startByte = evt.target.getAttribute('datastart');
var endByte = evt.target.getAttribute('dataend');
readBlob(startByte, endByte);
}
}, false
);
它还需要一个包含以下内容的常规旧.txt文件 - http://textuploader.com/5ucnk
这一切都很可爱,你上传.txt文件,点击“代码”按钮,它会给你十个两位数字。
但是,我无法解决DIV中的个别两位数字。有没有办法分割DIV的内容,以便我可以将每组数字作为自己的变量进行操作?
例如,假设我想要创建一个按钮,按下该按钮时,将序列的第一个数字增加1.并且数字由文本文件中的内容确定。我想“parseInt”会在这里发挥作用,但我真的只想知道是否有一种方法可以控制BLOB函数的输入(这样它可以将每组双位数分散到一个单独的范围内?)或者只需找到一种方法将DIV中的每个特定的两位数字作为变量进行处理。
有人在之前的帖子中建议我使用
var obj = {X:void 0, Y:void 0};
var res = document.querySelector("div").textContent.match(/\d+/g);
Object.keys(obj).forEach(function(val, i) {
obj[val] = res[i]
});
然而,除非更改“div”名称,否则将其添加到我的JavaScript中会破坏我的代码。
我真的遇到了麻烦,所以任何帮助都会非常感激。
答案 0 :(得分:0)
你的意思是做这样的事吗?
基本上,div的内容被解析为一个名为java-7-openjdk/jre (default)
的数字数组,可以像任何其他数组一样被访问。
z

var z=document.querySelector('div').innerText
.split(/\n/g)
.filter(function(x){
return !isNaN(x)&&x.replace(/\s/g,'')!=''; //remove non-integers
});
//test to see that this works
document.querySelector('span').innerHTML='<pre>variable "z" is set to: '+JSON.stringify(z);
&#13;