·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

分类信息模版,如果字段值为空则不显示的代码怎么写

413 2
发表于 2023-6-17 08:36:13 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
我通过分类信息设置了4个标签字段(选填),需要如果标签字段值为空(不填),则不显示这个字段的标签。
在【帖子页模版】我是这么写的htm代码:
  1. <div class="infosItem_tags">
复制代码
然后加了一段JS代码:
  1. <script>    window.onload = function() {        var test1="{bqian1_value}";        if (test1.indexOf('无') >=0) {document.getElementById("bqian1").style.display = "none"; };        var test2="{bqian2_value}";        if (test2.indexOf('无') >=0) {document.getElementById("bqian2").style.display = "none"; };        var test3="{bqian3_value}";        if (test3.indexOf('无') >=0) {document.getElementById("bqian3").style.display = "none"; };        var test4="{bqian4_value}";        if (test4.indexOf('无') >=0) {document.getElementById("bqian4").style.display = "none"; };              }</script>
复制代码
通过以上代码,在【帖子页】实现了如果标签字段值为空(不填),则不显示这个字段的标签的效果。
分类信息模版,如果字段值为空则不显示的代码怎么写 分类,分类信息,信息,模版,如果


但问题在于,将这htm和js代码放到【列表页模版】,列表页却没有这个效果。
分类信息模版,如果字段值为空则不显示的代码怎么写 分类,分类信息,信息,模版,如果


通过反复测试,发现列表页如果只有一个帖子才有效果,我想应该是列表页模版不能照搬帖子页的代码,但不知道要如何修改,求大神指点应该如何解决?
分类信息模版,如果字段值为空则不显示的代码怎么写 分类,分类信息,信息,模版,如果

我知道答案 回答被采纳将会获得1 贡献 已有1人回答
我要说一句 收起回复

评论2

拾光Lv.8 发表于 2023-6-17 08:36:38 | 查看全部
  1. <div class="infosItem_tags">                                        <i id="bqian1">{bqian1_value}</i>                                        <i id="bqian2">{bqian2_value}</i>                                        <i id="bqian3">{bqian3_value}</i>                                        <i id="bqian4">{bqian4_value}</i>                                </div>
复制代码
编辑帖子没注意,htm代码不完整就发出来了,给补上
我要说一句 收起回复
Discuz智能体Lv.8 发表于 2025-3-17 02:40:13 | 查看全部
在Discuz的分类信息模板中,如果你希望在列表页也实现字段值为空时不显示的效果,需要注意列表页和帖子页的模板渲染方式有所不同。列表页通常会一次性渲染多个帖子,因此你的JS代码需要针对每个帖子进行处理。

你可以通过以下方式修改你的代码,使其在列表页也能正常工作:

### 1. 修改HTML模板
在列表页模板中,确保每个帖子的标签字段都有一个唯一的ID或类名。你可以通过帖子的ID来区分不同的帖子。例如:

  1. <!-- 列表页模板 -->
  2. <!-- 假设每个帖子的ID为 {pid} -->
  3. <div id="post_{pid}">
  4.     <div id="bqian1_{pid}" class="bqian">{bqian1_value}</div>
  5.     <div id="bqian2_{pid}" class="bqian">{bqian2_value}</div>
  6.     <div id="bqian3_{pid}" class="bqian">{bqian3_value}</div>
  7.     <div id="bqian4_{pid}" class="bqian">{bqian4_value}</div>
  8. </div>
复制代码


### 2. 修改JS代码
在列表页模板中,JS代码需要遍历每个帖子,并根据字段值来决定是否显示对应的标签。你可以使用`querySelectorAll`来获取所有的帖子,然后对每个帖子进行处理。

  1. window.onload = function() {
  2.     // 获取所有的帖子
  3.     var posts = document.querySelectorAll('[id^="post_"]');
  4.    
  5.     posts.forEach(function(post) {
  6.         var pid = post.id.split('_')[1]; // 获取帖子ID
  7.         
  8.         // 检查每个标签字段是否为空
  9.         var bqian1 = document.getElementById("bqian1_" + pid);
  10.         var bqian2 = document.getElementById("bqian2_" + pid);
  11.         var bqian3 = document.getElementById("bqian3_" + pid);
  12.         var bqian4 = document.getElementById("bqian4_" + pid);
  13.         
  14.         if (bqian1 && bqian1.textContent.trim() === "") {
  15.             bqian1.style.display = "none";
  16.         }
  17.         if (bqian2 && bqian2.textContent.trim() === "") {
  18.             bqian2.style.display = "none";
  19.         }
  20.         if (bqian3 && bqian3.textContent.trim() === "") {
  21.             bqian3.style.display = "none";
  22.         }
  23.         if (bqian4 && bqian4.textContent.trim() === "") {
  24.             bqian4.style.display = "none";
  25.         }
  26.     });
  27. };
复制代码


### 3. 解释
- **HTML部分**:每个帖子的标签字段都有一个唯一的ID,例如`bqian1_{pid}`,其中`{pid}`是帖子的ID。
- **JS部分**:通过`querySelectorAll`获取所有的帖子,然后遍历每个帖子,检查每个标签字段的值是否为空。如果为空,则隐藏该字段。

### 4. 注意事项
- 确保`{pid}`在列表页模板中是唯一的,并且能够正确获取到。
- 如果列表页的帖子是通过AJAX动态加载的,你可能需要在AJAX加载完成后再次执行这个JS代码。

通过这种方式,你可以在列表页中实现字段值为空时不显示的效果。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:3.12.149.200,GMT+8, 2025-4-13 01:01 , Processed in 0.276925 second(s), 78 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表