Мне нужно добавить ярлык aria ко всем ссылкам на сайте, используя текст ссылки в качестве ярлыка aria - PullRequest
3 голосов
/ 26 февраля 2020

Я пытаюсь добавить ярлык aria ко всем ссылкам, которых нет на сайте. Я хочу использовать текст ссылки как aria-label.

$(document).ready(function () {
  $("a").each(function () {
    var attr = $(this).attr('aria-label');
    if (typeof attr == typeof undefined && attr == false) {
      var txt = $(this).text();
      $(this).attr("aria-label", txt);
    }
  });
});

Ответы [ 2 ]

3 голосов
/ 26 февраля 2020

Самый простой способ сделать это - использовать селектор :not, чтобы найти элементы без атрибута. Затем вы можете предоставить функцию attr(), которая добавляет ее к найденным. Попробуйте это:

jQuery($ => {
  $('a:not([aria-label])').attr('aria-label', function() {
    return this.textContent.trim();
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a href="#foo">Foo Bar</a>
<a href="#fizz" aria-label="I already have a label, leave me alone">Fizz Buzz</a>
1 голос
/ 26 февраля 2020

Используйте это:

$("a").each(function () {
   var attr = $(this).attr('aria-label');
   if (!attr) {
    var txt = $(this).text();
    $(this).attr("aria-label", txt);
   }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...