如何实现页面存在Mitgliedsnummer时隐藏指定div?当前div始终隐藏
问题排查与修复方案
嘿,我一眼就看到你代码里的问题啦——你的条件判断逻辑完全不对!你直接把字符串 "p:contains(Mitgliedsnummer)" 丢进if语句里,这在JS里会被当成永远为真的真值,所以不管页面里有没有"Mitgliedsnummer",代码都会执行.hide(),这就是那个div一直藏着的原因。
修正后的代码
$(function () { // 检查页面中是否存在包含指定文本的p元素 const hasTargetText = $("p:contains('Mitgliedsnummer')").length > 0; if (hasTargetText) { $(".femanager_moduleSysDmailNewsletter").hide(); } else { $(".femanager_moduleSysDmailNewsletter").show(); } });
核心修正点解释
- 你需要用jQuery选择器实际查询页面中的元素,而不是用字符串当条件。
$("p:contains('Mitgliedsnummer')")会返回所有包含目标文本的p元素集合,通过判断集合的length是否大于0,才能准确知道页面里有没有你要找的字符串。 - 记得给
contains里的文本加上单引号,这是jQuery选择器的规范写法,能避免潜在的语法问题。
额外小提示
如果你不确定目标文本是不是只出现在p标签里,可以把选择器改成更通用的$("*:contains('Mitgliedsnummer')"),这样会检查页面中所有包含该文本的元素。不过这种方式性能稍差,如果能确定标签类型,尽量指定具体标签会更高效。
内容的提问来源于stack exchange,提问作者Robert
相关产品推荐
相关产品推荐

