Удалите атрибут rel из тега a, который находится внутри div - PullRequest
0 голосов
/ 28 февраля 2020

Я хочу удалить атрибут rel a внутри other class, не удаляя атрибут внутри myclass.

document.getElementsByClassName('other class').document.getElementsByTagName("a").element.removeAttribute("rel");
<div class="myclass">
  <a rel="nofollow noopener noreferre">MEC</a>
</div>

<div class="other class">
  <a = rel "nofollow noopener noreferrer">MEC</a>
</div>

Я также пытался использовать jQuery:

document.getElementsByClassName('other class').child;
for (var i = 0; i < activeLis.length; i++) {
  var allLinks = document.getElementsByTagName("a");
  for (i = 0; i < allLinks.length; i++) {
    allLinks[i].removeAttribute("rel");
  }
};

Ответы [ 2 ]

0 голосов
/ 28 февраля 2020

Основная проблема с вашим кодом заключается в том, что getElementsByClassName и getElementsByTagName возвращают списки узлов. Таким образом, вам нужно выполнить итерацию по ним, что проще сделать с querySelectorAll(), вызывая removeAttribute() на отдельных узлах. Попробуйте это:

document.querySelectorAll('.other.class').forEach(function(el) {
  el.querySelectorAll("a").forEach(function(a) {
    a.removeAttribute("rel");
  });
});
<div class="myclass">
  <a rel="nofollow noopener noreferre">MEC</a>
</div>

<div class="other class">
  <a rel="nofollow noopener noreferrer">MEC</a>
</div>

Эквивалент jQuery это:

$('.other.class > a').removeAttr("rel");

Это, очевидно, предполагает, что вы выбираете div, используя два классы. Если это всего лишь один класс, используйте .otherclass

0 голосов
/ 28 февраля 2020

Либо использовать:

$('.other').children('a').attr("rel","");

Или

$('.other').children('a').removeAttr("rel");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...