Как выбрать все теги привязки с определенным текстом


дал несколько ссылок:

<a class="myclass" href="...">My Text</a>

Как выбрать якоря, соответствующие классу и с некоторым конкретным текстом. например, выберите все якоря с классом: 'myclass' и text:'My Text'

6 60

6 ответов:

$("a.myclass:contains('My Text')")

вы можете создать пользовательский селектор, подобный :contains точных совпадений:

$.expr[':'].containsexactly = function(obj, index, meta, stack) 
{  
    return $(obj).text() === meta[3];
}; 

var myAs = $("a.myclass:containsexactly('My Text')");

Если вас беспокоит только текст якоря содержит конкретная строка, пойдите с решением @Dave Morton. Если, однако, вы хотите ровно соответствует определенной строке, я бы предложил что-то вроде этого:

$.fn.textEquals = function(txt) {
    return $(this).text() == txt;
}

$(document).ready(function() {
    console.log($("a").textEquals("Hello"));
    console.log($("a").textEquals("Hefllo"))
});

<a href="blah">Hello</a>

слегка улучшенная версия (со вторым отделка

во-первых, выберите все теги содержащие 'мой текст'. Затем для каждого точного совпадения, если оно соответствует условию, делайте то, что вы хотите сделать.

$(document).ready(function () {
    $("a:contains('My Text')").each(function () {
        $store = $(this).text();

        if ($store == 'My Text') {
            //do Anything.....
        }
    });
});

если вы не знаете класс нужного объекта и просто хотите перейти после текста ссылки можно использовать

$(".myClass:contains('My Text')")

если вы даже не знаете, какой это элемент (например, a, P, link,...) вы можете использовать

$(":contains('My Text')")

(просто оставляя часть перед : пустой.)

Я должен добавить здесь, что он вызывает все элементы, начиная с <html>-тег вниз к нужному элементу. Решение, которое я мог бы предоставить, это добавление .last() к нему, но только этот работает, если есть только один элемент, чтобы найти. Может быть, сбди. знает лучшее решение здесь.

на самом деле, это должно быть дополнение к принятому ответу, особенно к вопросу @Amalgovinus.

Я думаю, что это должно работать для точного совпадения вещь..

$("a.myclass").html() == "your text"