jQuery检查<li>是否包含特定文本

时间:2019-06-10 11:32:59

标签: javascript jquery

我正在尝试检查锚点是否包含特定文本,但不幸的是,它对我不起作用。

我有这样的文字:REGISTER | LOG IN |SIGN OUT

我在下面编写了JavaScript代码。

var logintxt = $(".login-info2 a").text();
if ($('.login-info2 a:contains("Sign Out")').length > 0) {  
    console.log(logintxt + " yes");
}

HTML代码在下面。

<li class="user-info2">
    <a class="smalltext" href="/register">Register</a>&nbsp;|&nbsp;
    <a class="smalltext" href="/login">Log&nbsp;In</a>
</li>

<li class="user-info2">
    <a class="smalltext" href="/signout">Sign&nbsp;Out</a>
</li>

很遗憾,它无法正常工作。有谁能说出解决此问题的方法?

谢谢

4 个答案:

答案 0 :(得分:3)

var logintxt = $(".login-info2").text();

if ($('.login-info2:contains("Sign Out")').length > 0) {  
    console.log(logintxt + " yes");
}

这种方式对我有用吗

答案 1 :(得分:2)

尝试这样。

$(".user-info2 a").each(function(){
   var logintxt = $(this).html().replace(/&nbsp;/g, ' ').toLowerCase();
  if (logintxt == "sign out") {
      console.log(logintxt + " yes");
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<li class="user-info2">
    <a class="smalltext" href="/register">Register</a>&nbsp;|&nbsp;
    <a class="smalltext" href="/login">Log&nbsp;In</a>
</li>

<li class="user-info2">
    <a class="smalltext" href="/signout">Sign&nbsp;Out</a>
</li>

答案 2 :(得分:1)

您可以像这样使用它:

var logintxt = $(".login-info2 a").text();
if(logintxt.toLowerCase() === "sign up"){
 console.log(logintxt + " Yes");
}

答案 3 :(得分:1)

由于链接文本中包含HTML实体,因此检查链接目标可能更可靠:

if ([...linklist.querySelectorAll('a')].some(a => a.getAttribute('href') === '/signout')) {
  console.log('logout link found');
} else {
  console.log('none found')
};
<ul id="linklist">
  <li class="user-info2">
    <a class="smalltext" href="/register">Register</a>&nbsp;|&nbsp;
    <a class="smalltext" href="/login">Log&nbsp;In</a>
  </li>

  <li class="user-info2">
    <a class="smalltext" href="/signout">Sign&nbsp;Out</a>
  </li>
</ul>

或使用jQuery:

if ($('#linklist a[href="/signout"]').length) {
  console.log('logout link found');
} else {
  console.log('none found')
};
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul id="linklist">
  <li class="user-info2">
    <a class="smalltext" href="/register">Register</a>&nbsp;|&nbsp;
    <a class="smalltext" href="/login">Log&nbsp;In</a>
  </li>

  <li class="user-info2">
    <a class="smalltext" href="/signout">Sign&nbsp;Out</a>
  </li>
</ul>