
在无法修改 html 结构的前提下,可通过内联脚本动态获取并隐藏当前 `
` 所属的父级 ` |
` 行,无需 id 或 class,仅依赖 dom 层级关系即可精准控制。要实现“在
Wechat Article Html
将 Markdown 文章转换为微信公众号兼容的纯 HTML 格式。当用户要求"转成微信格式"、"生成公众号文章 HTML"、"排版到微信草稿箱"、"微信粘贴格式"时触发。输出带内联样式的纯 HTML,微信编辑器可直接渲染,无需额外适配。支持标题、段落、列表、粗体、行内代码、表格、引用块、代码块、配图的完整转换。
下载
内插入代码来隐藏其所在整行”,关键在于:从执行脚本的上下文反向定位到最近的 父元素。由于你只能在 | 内添加内容(如 <script>),最可靠、兼容性好且语义清晰的方式是利用 currentScript 获取正在执行的 <script> 标签,再逐级向上查找其祖先 <tr>。<p>✅ 正确做法(推荐):<pre class="brush:php;toolbar:false;"><table>
<tbody>
<tr>
<th>UserName</th>
<td>Bob</td>
</tr>
<tr>
<th>Password</th>
<td>Fred <script>
// 安全获取当前 script 标签,并向上查找最近的 tr
const script = document.currentScript;
const row = script.closest('tr');
if (row) row.style.display = 'none'; // 或使用 row.hidden = true
</script></td>
</tr>
</tbody>
</table></pre><p>? 原理说明: <ul><li>document.currentScript 指向<strong>当前正在执行的 <script> 元素(<a href="https://www.php.cn/link/c3badfdcfdd0211f106ec21d95e0bdf1" rel="nofollow" target="_blank" >支持 IE9+,现代浏览器全覆盖); <li>.closest('tr') 从该 <script> 开始向上遍历祖先节点,返回第一个匹配的 <tr> —— 这正是包裹该 <td> 的目标行; <li>row.style.display = 'none' 是最通用的隐藏方式(不影响 hidden 属性语义,且兼容所有场景);也可用 row.hidden = true(更语义化,但需注意部分旧版 Safari 对 hidden 的继承行为略有差异)。<p>⚠️ 注意事项: <p><span>立即学习“<a href="https://pan.quark.cn/s/c1c2c2ed740f" style="text-decoration: underline !important; color: blue; font-weight: bolder;" rel="nofollow" target="_blank">Java免费学习笔记(深入)”;<ul><li>❌ 不要用 document.parentrow(不存在该属性)或 this.parentNode(在全局脚本中 this 指向 window,非预期上下文); <li>❌ 避免依赖 nth-child() 选择器(如 tr:nth-child(2))做内联隐藏——它无法绑定到特定 <td>,一旦表格结构变动(如新增行、服务端渲染顺序变化),逻辑即失效; <li>✅ 若需多处隐藏不同行,此方案可复用:每个 <td> 内嵌独立脚本,各自精准控制所属行,完全解耦; <li>✅ 支持动态插入内容(如通过 innerHTML 注入含 <script> 的字符串),只要脚本执行时 DOM 已就绪(建议避免在 <head> 中提前执行)。<p>? 小结:在受限 HTML 环境中,document.currentScript.closest('tr') 是隐藏当前 <td> 所在行的<strong>最健壮、最语义化、最易维护的方案。它不依赖外部样式、不污染全局命名空间、无需预设索引,真正实现“所见即所控”。</script>
|
|