检查ul在jQuery中是否具有带有特定文本的li

时间:2019-07-04 07:26:37

标签: javascript jquery html

我目前正在尝试检查我的li中是否有包含特定文本的ul元素。在控制台中输入以下内容后,我将收到所有li文本:

jQuery(".et-pb-contact-message.contact-error ul:nth-child(2)").has("li").text();
"Name *E-Mail-Adresse *Betreff *Nachricht *Bestätigung"

现在我已经将此语句写到if块中,但可惜它不起作用:

if (!jQuery(".et-pb-contact-message.contact-error ul:nth-child(2)").has("li").text() === 'Captcha *') {
    alert("No captcha error");
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="et-pb-contact-message contact-error">
  <p>Bitte fülle die folgenden Felder aus:</p>
  <ul>
    <li>Name&nbsp;*</li>
    <li>E-Mail-Adresse&nbsp;*</li>
    <li>Betreff&nbsp;*</li>
    <li>Nachricht&nbsp;*</li>
    <li>Bestätigung</li>
  </ul><ul></ul>
</div>

4 个答案:

答案 0 :(得分:2)

var flag = false;
jQuery(".et-pb-contact-message.contact-error ul:nth-child(2) li").each((idx, ele) => {
  console.log(ele.innerText);
  if (!flag && ele.innerText == 'Captcha *') {
    flag = true;
  }
});
if (!flag)
  alert("No captcha error");
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="et-pb-contact-message contact-error">
  <p>Bitte fülle die folgenden Felder aus:</p>
  <ul>
    <li>Name&nbsp;*</li>
    <li>E-Mail-Adresse&nbsp;*</li>
    <li>Betreff&nbsp;*</li>
    <li>Nachricht&nbsp;*</li>
    <li>Bestätigung</li>
    <!--<li>Captcha&nbsp;*</li>-->
  </ul>
  <ul></ul>
</div>

答案 1 :(得分:1)

jQuery(".contact-error ul:nth-child(2) li").each(function(index) {
  if ($(this).html() === 'Captcha&nbsp;*')
    console.log('founded in ' + (index + 1) + 'th error');
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="et-pb-contact-message contact-error">
  <p>Bitte fülle die folgenden Felder aus:</p>
  <ul>
    <li>Name&nbsp;*</li>
    <li>Captcha&nbsp;*</li>
    <li>Betreff&nbsp;*</li>
    <li>Nachricht&nbsp;*</li>
    <li>Bestätigung</li>
  </ul>
  <ul></ul>
</div>

答案 2 :(得分:1)

if (!(jQuery(".et-pb-contact-message.contact-error ul:nth-child(2)").has("li").text()).split(" ").includes('Captcha *')) {
    console.log("enjoy!");
  }

但是请记住,include方法在ie中不起作用。

答案 3 :(得分:1)

jQuery(".et-pb-contact-message.contact-error ul:nth-child(2) li").each(function(){
  console.log(this.innerText);
});

使用此代码检查每个值。