APEX中JS隐藏区域后,如何从区域显示选择器中隐藏对应项?
解决APEX区域显示选择器中隐藏指定区域选项的问题
首先,你已经通过JS控制了区域的显示/隐藏,但区域显示选择器里的选项还残留着——这是因为选择器的选项和区域本身是独立的DOM元素,得单独操作选择器里的对应条目才行。
APEX的区域显示选择器中,每个选项链接都带有一个data-region属性,值就是对应区域的静态ID。我们可以通过这个属性精准定位到对应Region2的选项,然后把它隐藏或者移除。
具体实现代码
你可以把这段代码加到现有的动态操作里,或者封装成页面的JavaScript函数按需调用:
// 定位到区域显示选择器中对应Region2的选项链接 const targetSelectorLink = $('a.t-Region-selector-link[data-region="Region2"]'); // 方式1:隐藏这个选项(后续需要恢复显示的话用这个) targetSelectorLink.hide(); // 方式2:彻底移除这个选项(确定不需要再恢复的话用这个) // targetSelectorLink.remove();
注意事项
- 执行时机:要确保这段代码在区域显示选择器渲染完成后执行。如果页面有动态刷新操作,建议把代码放到动态操作的「After Refresh」事件中,或者封装成函数,在刷新后重新调用。
- 版本兼容性:APEX的CSS类名可能随版本更新变化,比如
t-Region-selector-link是当前主流版本的类名,如果你的APEX版本较旧,可以用浏览器开发者工具查看选择器的DOM结构,确认对应元素的类名。 - 恢复显示:如果之后需要重新在选择器中展示Region2,只要调用
targetSelectorLink.show()即可(前提是你用的是hide()而不是remove())。
这样操作后,Region2不仅会被隐藏,连区域显示选择器里的对应选项也会消失,刚好解决你的需求~
内容的提问来源于stack exchange,提问作者Coding Duchess
相关产品推荐
相关产品推荐

