Dmi*_*tri 8 jquery jquery-selectors dom-traversal
我需要做的是在页面上找到href属性中包含"tag"的所有元素,并且元素的文本包含特定的单词.
例如
<a href="/my/tag/item2">cars</a>
Run Code Online (Sandbox Code Playgroud)
我知道我可以在href中获得带有标记的所有元素,如下所示:
$("a[href*=tag]");
Run Code Online (Sandbox Code Playgroud)
我也可以在文本中找到所有带有'cars'的元素,如下所示:
$("a:contains('cars')");
Run Code Online (Sandbox Code Playgroud)
但是,我如何将这两个条件组合成一个声明:在href中查找包含'tag'的所有元素并在文本中包含'cars'?
iMo*_*ses 19
你试过$("a[href*=tag]:contains('cars')");
吗?
你可以永远这样继续下去,即
$("a.className.anotherClass[href*=tag][title=test]:contains('cars'):visible");
Run Code Online (Sandbox Code Playgroud)
正如其他人所说,或者,如果需要分别应用这两个条件,例如中间有一些其他代码,那么......
var $tags = $("a[href*=tag]");
Run Code Online (Sandbox Code Playgroud)
然后后来...
var $carTags = $tags.filter(":contains('cars')");
Run Code Online (Sandbox Code Playgroud)
.filter()
是减少现有 jQuery 选择的通用方法。
像许多其他 jQuery 方法一样.filter()
返回一个 jQuery 对象,因此它将链接:
var $foo = $("a[href*=tag]").filter(":contains('cars')").filter(".myClass");
Run Code Online (Sandbox Code Playgroud)
.filter()
出于我不打算解释的原因也很好,我不需要解释,因为@bažmegakapa 刚刚非常雄辩地做到了这一点。