jquery - 使用 CSS 选择器仅针对类的第一次出现

标签 jquery css

<分区>

作为这个问题的序言,这不是像许多其他结构这样的场景:

<div>
    <div class="ErrorMessage"></div>
    <div class="ErrorMessage"></div>
    <div class="ErrorMessage"></div>
    <div class="ErrorMessage"></div>
</div>

我知道 :first-of-type 或 :first-child 对那些有用。

我的场景是当我在整个 DOM 的多个元素上调用同一个类,但它们并不都遵循相同的结构。例如,我可能在页面的某个位置有这种结构。

   <div class="appArea">
      <p class="ErrorMessage">
        Some text to be changed
      </p>
    </div>

    <div class="appArea">
      <div class="something-for-space">
        <p class="ErrorMessage">
          Some text
        </p>
      </div>
    </div>

    <div class="appArea">
      <table class="some-random-table">
        <tr>
           <td>        
             <p class="ErrorMessage">
                Some text
             </p>
           </td>
        </tr>
      </table>
   </div>

我的兴趣在于如何仅选择该类的第一次出现“ErrorMessage”。我需要更改它的默认文本,我有一个正在运行的 jQuery 脚本,但它会更改每个“ErrorMessage”的文本。我无法找到合适的选择器组合来确保只更改第一个。

fiddle 引用:https://jsfiddle.net/md6f0cb8/41/

即使我为类的所有实例更改它,也不是世界末日。我可以用 CSS 隐藏其他实例(其他都是多余的)。但同样,我没有合适的选择器来确保只显示第一个出现的地方,而其他的都被隐藏。

非常感谢任何帮助!

最佳答案

您需要的是 .eq() jQuery 方法:

$(document).ready(function() {
  $(".ErrorMessage").eq(0).replaceWith("<span>Erreur : Veuillez vérifier les renseignements 		saisis ci-dessous. Certains champs sont obligatoires et d'autres présentent des contraintes de saisie particulières.</span>");
  $(".appArea span:first-of-type").addClass('testing');
});
.testing {
  font-size: 24px;
  color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="appArea">
  <p class="ErrorMessage">
    Some text to be changed
  </p><br/><br/>
</div>

<div class="appArea">
  <div class="something-for-space">
    <p class="ErrorMessage">
      Some text to be changed
    </p><br/><br/>
  </div>
</div>

<div class="appArea">
  <div class="someother-random-div">
    <p class="ErrorMessage">
      Some text to be changed
    </p>
  </div>
</div>

关于jquery - 使用 CSS 选择器仅针对类的第一次出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51558041/

上一篇:html - 位置 h1,边框位于图片中心

下一篇:html - 创建标题/内容 CSS 网格布局的更简洁方法

相关文章:

javascript - 限制可拖放的次数,并计算是否正确?

jquery - jqgrid 将纪元日期值显示为错误日期?

javascript - 为某个类的所有项目扩展 Javascript 原型(prototype)?

javascript - 实现 "scroll to top"按钮

javascript - 滚动弹出技术的正式名称是什么?

javascript - 升级到 jQuery 1.7 并更改事件对象

javascript - 将多个 jQuery .on() 替换为一个

css - 圆形进度条CSS

javascript - 如果我的网站布局设置为 800x600 的分辨率,如果分辨率更高,我可以放大我的网站以适应用户的分辨率吗?

javascript - 如何格式化 Angular 下拉菜单?