如何获得JavaScript显示结果"点击"查询以显示所有结果

时间:2018-01-04 12:00:54

标签: javascript jquery

我正在尝试创建一个excel电子表格,汇总来自Google Chrome上的在线调查的所有回复,有超过500个条目,并点击每个条目以获得结果将永远。

我已经确定了Google Chrome上的问题>检查>具有多个显示结果的点处的元素点击。有没有办法删除onclick,以便能够一次下载或复制粘贴所有结果?

我附上了一张图片:

https://imgur.com/wyxoRjN

我很感激有关如何做到这一点的任何建议!提前道歉,因为我完全没有编程经验所以我可能没有得到所有的术语。

3 个答案:

答案 0 :(得分:0)

在我看来,最简单,技术最低的方法就是将整个内容粘贴到Notepad ++(免费)等文本编辑器中,然后做很多事情,然后更换所有"删除你不想要的东西(通过空白替换)。

例如,替换" tr onclick =" displayResults(" by""(即空白)

答案 1 :(得分:0)

修改

您应该查看在线调查服务,因为应该有一种方法将您的结果导出到csv (可以在Excel中打开csv)。 (作者表示没办法)

在使用网站抓取代码之前,请确保以这种方式抓取数据时服务正常。代码不应被视为恶意或意味着违反协议条款。

如果您提供的结构是一致的,那么您应该能够复制下面的代码(或者从小提琴中的javascript窗格),在包含数据的页面上的控制台中运行它(F12,chrome中的控制台选项卡) ),数据应打印到您可以复制它的控制台,然后使用在线工具(like this)将其从json转换为csv for excel。

var getData = () => {
  var table = document.getElementById('table_survey'); // get table
  var data = []; // holds all the data

  for (i = 0; i < table.rows.length; i++) {  //loops through rows  
    var pieceOfData = {}

    var cells = table.rows.item(i).cells; //gets cells
    for (var j = 0; j < cells.length; j++) { //loops through each cell

      var cellVal = cells.item(j).innerHTML; // get piece of data

      // store data in object dependent on index
      //assumes only 4 <td>s with valid data
      switch (j) {
        case 0:
          pieceOfData.id = cellVal
        case 1:
          pieceOfData.data1 = cellVal
        case 2:
          pieceOfData.data2 = cellVal
        case 3:
          pieceOfData.day = cellVal
      }
    }
    data.push(pieceOfData); // add data object to array
  }

  return data; // return all the data
}

var allData = getData(); // puts all the data in a variable
console.log(allData); // print data to console

我的小提琴:https://jsfiddle.net/m852hge8/

答案 2 :(得分:0)

最简单的解决方案是在处理CSV时关闭浏览器的Javascript,并在完成后重新打开它。 onclick正在执行Javascript,如果您的浏览器已关闭,则不会执行。

这应该可行,但是,如果需要Javascript来显示您需要提取的数据,那么您需要打开Javascript,但是您可以覆盖displayResult作为虚拟函数,因此您不会在浏览器控制台中单击时遇到有问题的行为:

displayResult = function() {};

这应该有效,但如果由于某种原因displayResult被重新定义,那么您可以删除每个元素的onclick。如果手动执行的元素太多,那么您可以在控制台中执行类似的操作:

var survey = document.querySelectorAll("#table-survey tr");
for (var index = 0; index < survey.length; index++) {
    survey[index].onclick = "";
}