Javascript 从html获取文本,包括格式
我希望从我的html中获取文本,并保留正确的格式,就像它在浏览器上的外观一样 我想要这个Javascript 从html获取文本,包括格式,javascript,jquery,Javascript,Jquery,我希望从我的html中获取文本,并保留正确的格式,就像它在浏览器上的外观一样 我想要这个 CompanyName CompanyAddress Company Phone Number 1 Item1 7.00 0% 7.00 2 Item2 5.00 0% 5.00 TOTAL: 2
CompanyName
CompanyAddress
Company Phone Number
1 Item1 7.00 0% 7.00
2 Item2 5.00 0% 5.00
TOTAL: 2
SUBTOTAL: 12.00
CASH: 12.00
我明白了
CompanyName
CompanyAddress
Company Phone Number
1
Item1
7.00
0%
7.00
我的HTML:
<div id="printPreview" class="interprise-popover-container">
<div class="interprise-popover-header popover-header">
<h1 class="title">Print Preview</h1>
<a class="popover-btn left-popover-btn btn-Cancel">Cancel</a>
<a class="popover-btn right-popover-btn btn-Done">Done</a>
</div>
<br class="clearfloat"/>
<div id="printPreviewBody" class="interprise-popover-content">
<div id="print-area">
<div id="print-header">
<h4><%= Company %></h4>
<h6><%= WarehouseAddress %></h6>
<h6><%= WarehouseCity %>, <%= WarehouseState %> <%= WarehousePostalCode %></h6>
<h6><%= PhoneNumber %></h6>
<h6>www.fairysales.com</h6>
<h5 style="margin-top: 5px;"><%= TransactionType %># <%= InvoiceCode %></h5>
</div>
<div id="print-barcode" style="margin:0 auto; "></div>
<span style="font-size: 12px;">Monday</span>
<div>
<table id="print-items" cellspacing="0" width="100%">
<tbody>
<tr>
<td align="right"> 1 </td>
<td align="left"> Item1<br></td>
<td align="right">12.00</td>
<td align="right">0%</td>
<td align="right"><div><abbr>12.00</abbr></div></td>
</tr>
</tbody>
</table>
</div>
<div id="print-total">
</div>
</div>
</div>
更新:这里是jsfiddle
我想要实现的实际上与结果相同,但是是文本格式,因此我可以将其作为字符串从javascript传递到objective c 我认为使用$(“#打印头”).html()代码>应该可以解决您的问题
请参阅和。由于您的html与您声明的内容以及您从何处获得的内容不一致,我假设您不需要条形码,不需要“星期一”,不需要“交易类型”/“发票代码”,最后不需要“www.fairysales.com”
我还假设你们想要,挨着彼此
但更重要的是:我猜您控制这个html源代码及其生成,因为您在“打印头”中使用了变量。
然后我假设您也有生成两个表的var:“打印项目”和“打印总计”对吗
好吧,如果你有VAR。。实际上是想把它们传给“目标c”,然后。。您可以控制用于将此数据发送到objective c应用程序以执行进一步任务的数据格式
但是,如果您仍然希望将呈现的html文本等效为(单)间距的纯文本(例如,仅在发送给客户的htm电子邮件中返回的文本),作为目标c的输入,然后,您需要更多地考虑您的数据,如在旧的学校日的:在最坏的情况下,每个字段将有多少字符?这是您随后需要追加/前置的空白字符数(以模拟表中的右/左对齐)。这并不难
现在假设您没有权限访问构建发送到浏览器的html的变量。
然后,在使用上述技术(dataformat/calculation/prepending/appending)结束之前,您必须进行递归分析,以获取包含所需数据的“innerTEXT”/“textContent”(它还可以查看表格单元格的对齐方式)
所以。。你控制风险值吗
希望这有帮助
ps:我建议使用单间距字体,因为。。您还打算如何按照发布“您想要什么”的方式调整数据?
我其实也在想。。为什么
函数的返回函数仍然很脏,需要进行一些优化。也许我会再弄一些。注意:在FF中构建和测试,使用“textContent”而不是“innerTEXT”
更新2::新的例行程序,清理了一点,更短,更可靠。自动缩放:P是的,我也尝试过。但是不管怎样,那张表呢?我希望它能像我想要的那样打印出来(上面的代码),但是我没有得到它。有什么想法吗?你也可以试试$(“#打印头”)[0]。innerHTML
。。。我不明白为什么你所做的不管用。你建议的两个都管用。但我现在关心的是桌面部分。我如何从中获取文本,但保留格式?返回的具体内容是什么?我在上面返回的框中看到的只是文本本身。告诉我当你调用任何一个解决方案时得到的HTML?我更新了JSFIDLE。使用$(“#打印区域”)[0]。您建议的innerHTML我不清楚您在问什么。如果您想保留HTML格式,为什么不使用.HTML()
?但我只需要文本。看,我从javascript中获取文本,然后通过phonegap插件将其传递给objective c,该文本将被传递到我的打印sdk进行打印。顺便说一下,我正在做收据。
$("#print-header").text(); to extract the text from the div