Может ли JQuery выбирать по тексту <label>или перечислять его атрибуты? - PullRequest
6 голосов
/ 26 января 2011

Я пытаюсь:

$('label[text="someValue"])

но возвращается пустой набор, скорее всего, поскольку текст не является атрибутом.

Можно ли выбрать по тексту элемента или по внутреннему html?

Редактировать: :contains("someValue) недостаточно строго, поскольку он возвращает любые соответствия someValue в качестве подстроки.

Есть ли способ перечислить все атрибуты элемента, чтобы исследовать / опрашивать их во время отладки / выполнения?

Ответы [ 3 ]

12 голосов
/ 26 января 2011

Вы можете выбрать их все, а затем отфильтровать до меньшего подмножества, используя filter:

$('label').filter(function () {
    return $(this).text() === "someValue";
});
1 голос
/ 26 января 2011

Проверено это:

    $.each($("#form label"), function() {
        var nodes = this.attributes;
        for(var i=0; i<nodes.length; i++)
        {
          alert(nodes[i].nodeName);
         alert(nodes[i].nodeValue);
        }
    });
0 голосов
/ 26 января 2011

Есть функция для получения текста элемента:

http://api.jquery.com/html/

var labelText = $('.parentClass label').html();

Какие атрибуты вы бы добавили к ярлыку? Вы можете назначить переменные атрибутам метки (я бы обычно хотел атрибут for, если бы я работал с метками):

var labelAttr = $('.parentClass label').attr('for');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...