我想在课程中隐藏一个div' .femanager_moduleSysDmailNewsletter'如果字符串" Mitgliedsnummer"可在当前网页上找到。现在div始终是隐藏的。 这就是我试过的:
$(function () {
if ("p:contains(Mitgliedsnummer)") {
$(".femanager_moduleSysDmailNewsletter").hide();
} else {
$(".femanager_moduleSysDmailNewsletter").show();
}
});
答案 0 :(得分:1)
首先,"p:contains(Mitgliedsnummer)"
只是一个字符串而不是jQuery选择器,所以它总是会计算为true。你想要的是将它转换为jQuery选择器,然后检查它的长度。假值(0
)表示没有元素与您的选择器匹配,而真值(1
或更多)表示至少有一个<p>
元素包含您感兴趣的文本。
这样做会有效:
if ($("p:contains('Mitgliedsnummer')").length) {
$(".femanager_moduleSysDmailNewsletter").hide();
} else {
$(".femanager_moduleSysDmailNewsletter").show();
}
$(function() {
var containsText = $('p:contains("Mitgliedsnummer")');
if (containsText.length) {
$(".femanager_moduleSysDmailNewsletter").hide();
} else {
$(".femanager_moduleSysDmailNewsletter").show();
}
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="femanager_moduleSysDmailNewsletter">
Target div to be toggled
</div>
<p>Mitgliedsnummer</p>
<p>lorem ipsum</p>
<p>foo bar</p>
&#13;
答案 1 :(得分:1)
您需要查看$(selector)
if($(selector))
$()
将始终是真实的,因为无论是否找到选择器匹配,总是返回一个对象
在您的情况下,您忽略了if(StringValue)
部分并且只是检查 if ("p:contains(Mitgliedsnummer)") {
,只要字符串不为空,它也是真的
尝试更改
if ($("p:contains(Mitgliedsnummer)").length) {
要
mystring
答案 2 :(得分:0)
当您输入类似$(function () {
if($('p').is(':contains("Mitgliedsnummer")')) {
$(".femanager_moduleSysDmailNewsletter").hide();
} else {
$(".femanager_moduleSysDmailNewsletter").show();
}
});
时实际上这不是任何布尔值,它是一个选择器。尝试以下方式:
length