如何解决将HTML邮件模板赋值到textarea显示[object Object]的问题
问题排查与修复方案
错误原因
- 核心错误是你将jQuery对象直接赋值给变量后传入
val()方法:textarea的val()方法要求传入字符串参数,当传入jQuery对象时,JS会自动将对象转为字符串,结果就是你看到的[object Object]。 - 你没有调用对应的方法读取DOM元素的HTML字符串内容,直接拿了元素包装对象赋值。
- 逻辑层面你命名变量为
postsArray但没有做多内容累加,若页面存在多个可见的.email-post元素,现有逻辑只会保留最后一个元素的内容。
修复代码
如果需要导出包含.email-post根标签在内的完整邮件HTML,使用如下代码:
function updateCode() { var postsContent = "" $(".email-post").each(function(i, obj) { if ($(obj).is(":visible")) { // 拼接符合条件的元素完整HTML postsContent += obj.outerHTML } }); $("#iframe-textarea").val(postsContent) }
如果仅需要导出.email-post标签内部的内容,将obj.outerHTML替换为$(obj).html()即可。
内容的提问来源于stack exchange,提问作者János
相关产品推荐
相关产品推荐

