Удаление ссылки в jQuery

У меня есть немного html вот так:

<a href = "#somthing" id = "a1"><img src = "something" /></a>
<a href = "#somthing" id = "a2"><img src = "something" /></a>

Мне нужно убрать ссылки, так что у меня осталась пара тегов изображений. Что было бы наиболее эффективным способом сделать это с помощью jQuery?

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
5
0
1 174
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

$("a > img").parent()   // match all <a><img></a>, select <a> parents
   .each( function()    // for each link
   { 
      $(this).replaceWith(              // replace the <a>
         $(this).children().remove() ); // with its detached children.
   });

Если у изображения есть братья и сестры, они также будут скопированы. Вместо этого вы можете использовать $ (this) .children ("img"). Remove ().

Sugendran 09.10.2008 06:51

Братьев и сестер не бывает. Но это хороший момент.

defrex 09.10.2008 11:17

Это должно сделать это:

$('a[id^=a]').each(function() { $(this).replaceWith($(this).html()); });

В простом javascript это будет примерно так:

<script type = "text/javascript">
window.onload = function(){
  var l = document.getElementsByTagName("a");
  for(i=0, im=l.length; im>i; i++){
    if (l[i].firstChild.tagName == "img"){
      l[i].parentNode.replaceChild(l[i].firstChild,l[i]);
    }
  }
}
</script>

jQuery сегодня используется для элегантной замены фрагментов кода, подобных вашему, предлагаемому здесь. Спасибо, в любом случае!

Alexander Prokofyev 09.10.2008 09:45

Серьезно, этот фрагмент просто показывает элегантность jQuery. Этот код и код Shog9 точно такие же, но один меньше по размеру и намного удобнее для чтения. Хотя и этот код отлично справится со своей задачей!

Adhip Gupta 09.10.2008 10:22

Элегантно - да, выглядит довольно аккуратно, но внутри jQuery он намного больше, поэтому, если у вас нет других причин использовать огромную библиотеку, используйте это. Но, конечно, defrex попросил jQuery-штуку, а это не так! -)

roenving 09.10.2008 10:49

Возможно, это плохо с моей стороны, но я настолько привык к jquery (и подобным библиотекам), что даже представить себе не могу, что снова попытаюсь писать код на raw js. Я думаю, что мои пользователи справятся с накладными расходами.

defrex 09.10.2008 11:22

Другие вопросы по теме