用JQuery导出HTML table到Excel,不能导出table中input值

用JQuery导出HTML table到Excel,不能导出table中input值,第1张

你好!

exclude_inputs 这个属性设置的是: 是否导出输入框中的内容.

也就是说为true才是导出输入框中的内容. $("#btn").click(function () { //点击按钮执行导出 

    $(".table tr").each(function(i, _tr){//循环表格的行

        var tds = $(_tr).find("td")//得到每行的所有列

        tds.each(function(j, _td){//循环每列

            var _ipt = $(_td).find("input")//查找每列当中的INPUT控件

            var hasInput = (_ipt.length>0)?1:0

            if(hasInput) {

                //console.log('第'+(i+1)+'行'+(j+1)+'列含有INPUT控件')

                _ipt.attr("value", _ipt.val())//如果有INPUT控件就给它设置value值

            }

        })

    })

    $(".table").table2excel({ //选取导出的表格

        filename: "项目", //导出的文件名 

        exclude_img: true, //是否导出图片 

        exclude_links: true,

        exclude_inputs: true

    })

}) 代码不复杂,看看注释就好了。

为什么要这么复杂的设置INPUT控件的value值,因为table2excel.js的源码当中是获取INPUT的value属性值,

但它得到的并不是动态赋值后的value值,所以你的数据无法导出到excel当中. 当然这种做法只是一种解决方案,最好结合你的实际情况去使用,修改源码当然也可以. 建议以后遇到类似这种问题,最好先看下源码,了解下它的执行逻辑,原理. 希望对你有帮助!

你没有给代码 也不知道为啥不会获取到

本着授人以鱼不如授人以渔的态度, 教你个办法

你分别在 控制台输出

console.log($("table"))

console.log($("table").find('td'))

console.log($("table").find('td').eq(0))

console.log($("table").find('td').eq(0).text())

// 你看看到底是哪一步没有获取到 dom对象 从而解决


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6111938.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-15
下一篇 2023-03-15

发表评论

登录后才能评论

评论列表(0条)

保存