jQuery Contains与Equals:如何将表单选择器从contains改为equals?
解决方案
没问题,我来帮你搞定这个选择器的修改!
原代码里的:contains("Field1")会匹配**所有文本中包含"Field1"的<h3>元素,但如果需要精确匹配文本内容完全等于"Field1"**的元素(也就是你说的"equals选择器"效果),我们可以用jQuery的.filter()方法来实现——因为jQuery并没有原生的:equals文本选择器。
修改后的代码如下:
$('<h2>Basic Information</h2>').insertBefore($('h3').filter(function() { // 用trim()去除文本前后的空白字符,避免空格干扰匹配 return $(this).text().trim() === "Field1"; }).parent().parent());
代码说明:
- 先通过
$('h3')选中页面中所有的<h3>元素 - 调用
.filter()方法,传入一个回调函数,筛选出文本内容(去除前后空白后)精确等于"Field1"的<h3> - 后续的
.parent().parent()逻辑和原代码保持一致,定位到目标元素的祖父节点,再插入新的<h2>元素
如果你的需求是基于元素索引的"equals"(比如匹配第N个<h3>),那可以用jQuery的:eq()选择器,比如$('h3:eq(0)')匹配第一个<h3>,但根据你的描述,应该是文本精确匹配的场景,所以上面的方案更贴合需求。
内容的提问来源于stack exchange,提问作者ChasEpes
相关产品推荐
相关产品推荐

