确定li元素是否包含特定文本

时间:2017-03-11 17:13:06

标签: jquery

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

我在jQuery中有以下功能,但它不起作用:

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

我缺少什么?

1 个答案:

答案 0 :(得分:0)

使用.each()方法。详细信息在Snippet中进行了注释。

<强>段

&#13;
&#13;
/* 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>");
  }
});
&#13;
<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>
&#13;
&#13;
&#13;