【问题标题】:Determine if li element contains specific text [duplicate]确定 li 元素是否包含特定文本 [重复]
【发布时间】:2017-08-01 23:12:42
【问题描述】:

我有一个 <li> 元素,其中文本是从控制器附加的。如果文本是:“电子邮件已存在。”我想附加一个链接,否则我不想附加任何东西。

我在 jQuery 中有以下函数,但它不起作用:

if ($("#validat ul li").indexOf("Email") >= 0)
{
    $("#validat ul li").append("<a href='@Url.Action("ForgotPassword","Auth")'>Forgot password?</a>");
}

我错过了什么?

【问题讨论】:

  • $("#validat ul li") 可以是一个集合。你需要告诉是哪一个。然后使用 .text() 来获取它的文本 - 或者只使用 li:contains

标签: jquery


【解决方案1】:

使用.each() 方法。详细信息在片段中进行了评论。

片段

/* Each list item do this... */
$('#validat ul li').each(function() {

  /* If the <li> has text content of 
  || "You got Mail"...
  */
  if ($(this).text() === "You got Mail") {
    /* append() a link within that <li> is 
    || the last child
    */
    $(this).append("<a href='#somewhere'>Click Here</a>");
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="validat">
  <ul>
    <li>You got Mail</li>
    <li>You got Mail</li>
    <li>You got Mail</li>
    <li></li>
    <li>You got Mail</li>
    <li>You got Mail</li>
    <li></li>
    <li>You got Mail</li>
    <li>You got Mail</li>
    <li>You got Mail</li>
    <li></li>
    <li>You got Mail</li>
    <li></li>
    <li></li>
    <li>You got Mail</li>
    <li>You got Mail</li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li>You got Mail</li>
    <li>You got Mail</li>
    <li></li>
    <li>You got Mail</li>
  </ul>

【讨论】:

  • 没错!谢谢:-)
  • @JeppeChristensen 太好了!不客气!编码愉快。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-31
  • 1970-01-01
  • 2023-04-10
  • 2013-02-24
  • 2017-09-20
  • 1970-01-01
相关资源
最近更新 更多