- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试将 THEAD 中的所有 TD 标签替换为 TH 标签。
我认为最好使用 PHP DOM 扩展。我在这方面还很陌生,所以我为我缺乏知识而道歉。
我做了一些搜索,找到了如何替换标签名称。但是,我无法弄清楚如何只替换父级中的标签名称(在本例中为 THEAD 标签)。我想将 TD 按原样留在 TBODY 中。
这是我的代码,用于缩小 THEAD 中的 TD。这就是我迷路的地方。
如何将 THEAD 中的标签名称更改为 TH?
$html = '<table>
<thead>
<tr>
<td>Column 1</td>
<td>Column 2</td>
<td>Column 3</td>
</tr>
</thead>
<tbody>
<tr>
<td>Column 1</td>
<td>Column 2</td>
<td>Column 3</td>
</tr>
<tr>
<td>Column 1</td>
<td>Column 2</td>
<td>Column 3</td>
</tr>
<tr>
<td>Column 1</td>
<td>Column 2</td>
<td>Column 3</td>
</tr>
</tbody>
</table>';
// create empty document
$document = new DOMDocument();
// load html
$document->loadHTML(html);
// Get theads
$theads = $document->getElementsByTagName('thead');
// Loop through theads (incase there are more than one!)
for($i=0;$i<$theads->length;$i++) {
$thead = $theads->item($i);
// Loop through TR
foreach ($thead->childNodes AS $tr) {
if ($tr->nodeName == 'tr') {
// Loop through TD
foreach ($tr->childNodes AS $td) {
if ($td->nodeName == 'td') {
// Replace this tag
}
}
}
}
}
最佳答案
如果您已查看手册,可以使用此 ->replaceChild()
方法将 td
替换为 th
标签:
$html = '<table>
<thead>
<tr>
<td>Column 1</td>
<td>Column 2</td>
<td>Column 3</td>
</tr>
</thead>
<tbody>
<tr>
<td>Column 1</td>
<td>Column 2</td>
<td>Column 3</td>
</tr>
<tr>
<td>Column 1</td>
<td>Column 2</td>
<td>Column 3</td>
</tr>
<tr>
<td>Column 1</td>
<td>Column 2</td>
<td>Column 3</td>
</tr>
</tbody>
</table>';
// create empty document
$document = new DOMDocument();
// load html
$document->loadHTML($html);
// Get theads
$theads = $document->getElementsByTagName('thead')->item(0); // get thead tag
foreach($theads->childNodes as $tr) { // loop thead rows `tr`
$tds = $tr->getElementsByTagName('td'); // get tds inside trs
$i = $tds->length - 1;
while($i > -1) {
$td = $tds->item($i); // td
$text = $td->nodeValue; // text node
$th = $document->createElement('th', $text); // th element with td node value
$td->parentNode->replaceChild($th, $td); // replace
$i--;
}
}
echo $document->saveHTML();
关于PHP DOM - 将 THEAD 中的 TD 标签替换为 TH 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28845621/
我正在研究 Bootstrap 4 中的表格。我不知道为什么不应用台灯类中的背景颜色。这是因为台灯无法覆盖暗灯吗?如果是真的,你能告诉我是什么让 thead-dark 优先于此吗?如果不是我想的,请为
我有两种情况,使用和不使用 的 HTML 脚本显示不同。标签。 场景 1:(带有 标签) HTML PAGE
谁能告诉我 while(thead != NULL) 和 while(thead->next !=NULL) 之间的区别是什么,因为遍历列表 thead != NULL 不工作,而 thead->ne
我有以下问题:我的 table 有大头(3 行)。我想修复thead 和tbody 滚动。我用jquery 但是当我向下滚动时,边框消失了。 $(document).ready(function()
我已将以下 CSS 应用于我的表格。 thead, tbody { display: block; } tbody { height: 200px; overflo
这个问题在这里已经有了答案: How to set tbody height with overflow scroll (16 个答案) 关闭 5 年前。
我希望我的表格具有固定的 thead 和可滚动的 tbody。我对其应用了以下 CSS: thead, tbody { display: block; } tbody { height:
我想使用 Christian Bach's tableSorter client-side table sorting jQuery plugin使用我的 asp.Net GridView 控件。 但
我正在开发一个 react - rails 应用程序,但我的控制台中一直出现此错误: ``` Warning: validateDOMNesting(...): cannot appear as a
好的,长篇短篇小说。我有一个结构如下的表: longer Heading with a width of 100% cell 1cell 2 cell 3cell 4 而且我希望 th 是
我正在使用Datatables对我拥有的数据表进行排序/过滤。我希望能够在标题中对两者进行排序和过滤,但是,单击过滤器会使表排序,然后过滤器选择不会保持打开状态。 我这里有一个演示:http://co
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 要求提供代码的问题必须表现出对所解决问题的最低限度的了解。包括尝试的解决方案、为什么它们不起作用以及预期结果
是否可以使用 javascript 将第一行移动到 中?标签? Server Name Network Zone Operational
我有一些 JavaScript 可以将点击的第 th 个元素的类切换为“升序”或“降序”。 问:在 css 中,如何显示与 .ascending 或 .descending 关联的 jQuery-UI
所以我能够创建一个粘性标题表并且它工作正常。问题是我需要制作另一个带有多行标题的表格,而我目前使用的方法不起作用,正如您在下面的代码中看到的那样。 .table-wrapper { positio
几乎有了 - 用动态数据描绘一个表格 - 这可以右对齐表格中的日期和数字列但更重要的是我还想右对齐相应 中的标签列柱子。如果我了解幕后情况,下面的这个方法一次一行,如果有匹配,它适用 text-al
我有以下内容: Document Date Buy-from Vendor No.
使用 thead 而不是仅仅使用 td 有什么好处?如果有好处... 最佳答案 HTML 中的 thead、tbody 和 tfoot 元素用于根据内容将表行分组到逻辑部分。您这样做的主要原因有两个:
我有一个数组: let headers = [ { title: 'First Name', style: 'bold' }, { title: 'Last Name', style:
我目前正在尝试编写一个实现以下功能的函数: 按随机顺序从“消息”列表中获取所有消息,同时确保没有重复的消息。 在延迟 1 - 10 秒范围内的随机秒数后打印它们。 所有线程完成后,打印字符串“打印完成
我是一名优秀的程序员,十分优秀!