将DIV中的每个数字更改为自己的变量

时间:2015-12-09 04:23:27

标签: javascript jquery blob

这是我目前的代码

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中会破坏我的代码。

我真的遇到了麻烦,所以任何帮助都会非常感激。

1 个答案:

答案 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;
&#13;
&#13;