Использование setAttributeNS в каждом цикле - PullRequest
1 голос
/ 06 мая 2019

Мне нужно изменить URL для всех svg на моей странице.У меня есть следующий код, но я получаю ошибку, когда пытаюсь использовать setAttributeNS.

jQuery("[*|href*='icons.svg']:not([href])").each(function () {

  hashedIconUrl = jQuery(this).attr('xlink:href').replace('icons.svg', hashedIcon);
  console.log(hashedIconUrl);

  jQuery(this).setAttributeNS('http://www.w3.org/1999/xlink', 'href', hashedIconUrl);
});

1 Ответ

1 голос
/ 06 мая 2019

Вам необходимо преобразовать объект jQuery в собственный объект DOM, чтобы вызвать setAttributeNS.Обычный способ сделать это через [0]

jQuery("[*|href*='icons.svg']:not([href])").each(function () {

  hashedIconUrl = jQuery(this).attr('xlink:href').replace('icons.svg', hashedIcon);
  console.log(hashedIconUrl);

  jQuery(this)[0].setAttributeNS('http://www.w3.org/1999/xlink', 'href', hashedIconUrl);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...