Javascript 如何在PHP中获取HTML元素高度

Javascript 如何在PHP中获取HTML元素高度,javascript,php,jquery,html,css,Javascript,Php,Jquery,Html,Css,我有一个PHP代码,它生成一个HTML表,如: 我想在达到我制作的PDF页面长度时,将此表剪切到某个位置 1. 一些文本 2. 第二栏 3. 此处有更多文本设置更多文本获取此tr标记高度 4. 该tr的高度与第三列不同 5. 5. 您已经标记了Jquery,因此我假设如果是Jquery的情况,请使用$('tr').innerHeight()或$('tr').outerHeight()通过计算一行的每个td的字符量来计算行数 您可以进行字符计数。 在tdcontentbyspaces上使用PH

我有一个PHP代码,它生成一个HTML
,如:

我想在达到我制作的PDF页面长度时,将此表剪切到某个位置


1.
一些文本
2.
第二栏
3.
此处有更多文本
设置更多文本
获取此tr标记高度 4. 该tr的高度与第三列不同
5. 5.
您已经标记了Jquery,因此我假设如果是Jquery的情况,请使用$('tr').innerHeight()或$('tr').outerHeight()通过计算一行的每个
td
的字符量来计算行数

您可以进行字符计数。
td
contentbyspaces上使用PHP
explode()
,您将获得字数

一个估计可以用来。。。关于字平均字符长度以获取行数。
我试图对此进行计算(
$acpw
以下)。。。但是你可以用一个常量来代替

这个乘以已知的CSS行高度,你就知道这个
td
height

(($acpw*$wc)/$tw)*&lh = $tdh
这是处理PHP任务的一种方法,因为您在PHP端创建了一个PDF。(见评论)
这只是一个开始。。。因为你没有提供代码。 ;)








元素有属性,包括
clientHeight
scrollHeight
-或者
getBoundingClientRect
之类的方法-这些在javascript中很有用,可以获得所需的内容-在PHP中获取此类信息不会有任何运气,除非您的页面在AJAX请求中发送此类数据,否则没有JS代码。。。你试过什么吗?我会尝试使用这三个属性。实际上,这段代码只是一个例子。我有一个计划。这个程序有一个很长的表标签,我需要让表标签拆分。我有个主意。我给一个数字来限制表的高度,并使用javascript来获得每个tr的高度,并累计每个高度数,如果超过表的高度限制,我将添加</table><table border=“1”class=“class1”>来拆分表。所以你想知道PHP端的每个<code>tr</code>高度,在生成表的循环中,对吗,这段代码只是一个例子。我有一个计划。这个程序有一个很长的表标签,我需要让表标签拆分。我有个主意。我给一个数字来限制桌子的高度,用javascript得到每个tr的高度,并累计每个高度数,如果超过桌子高度限制,我会添加</table><table border=“1”class=“class1”>来拆分桌子。我已经试过了。我知道如何利用远视来获取元素的高度。但是如何得到每个高度的数字。以及如何插入</table><table border=“1”class=“class1”>来拆分此表@卓琮偉 你把事情复杂化了,如果这只是寻呼你的长表的问题,你应该考虑指定每个表的行数,而不是修复表的高度。这样你就可以轻松地拆分桌子,而不必计算任何高度。为什么我需要计算高度?因为,我的计划有表格要填。我的顾客都是医生。他们需要填写病人的病历信息,你知道这将有一个很长的表格,我需要将其转换为PDF格式。所以这个高度是不稳定的。这就是为什么我需要设置一个数字来限制桌子的高度。(PDF页面的高度限制。)我也同意@KingKing的说法,你让事情变得复杂了。但是,如果你想保持你的方法,那么有一个解决方案:定义所有作为“切割点”的行(通过计算高度并与页面高度进行比较)。然后向这些行添加一个类,例如“cuthere”。(假设你有一张3页的表格,那么你有3个切点)。之后,使用jquery和“cuthere”类从原始表重建3个表并替换原始表。
<?php

// Declare a result array 
$row_height=[];

// Average char per word === Estimated constant.
$acpw = 8;

// Td width, should be known
$tw = 140; // in px.

// Line-height, should be known
&lh = 16; // in px.

// while parsing each th in a row
$i=0;
while($td_content=$something){
  $ca = strlen($td_content['string'])
  // word count
  $wc = $td_content['string'].explode(" ");

  // Average Char count per word calculation attemp, can be commented to use the constant
  $acpw = $ca/$wc;

  // The formula!
  $tdh = (($acpw  * $wc)/$tw)*$lh;

  // Save in array
  $row_height[$i] = $tdh;
  $i++;
}

// Now you know the row height of this row...
$max = max($row_height);

// You have to determine if there is enought space for the next loop.
if($space_left>$max+$footer){
  $space_left = $page_length-$max;

// Else split the table!
}else{
  echo"</table><table>";
}



// There is a couple strings to attach in this code...
?>