Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Изменить тип атрибута (https://javascript.ru/forum/jquery/54143-izmenit-tip-atributa.html)

Fedul 05.03.2015 11:06

Изменить тип атрибута
 
Здравствуйте.
подскажите возможно ли изменить тип атрибута, без подключения каких либо скриптов кроме самого jQuery, у изображения с data-src на src
спасибо.

laimas 05.03.2015 11:20

Тип атрибута, вернее его значение, это всегда строка. Заменить атрибут с ... на, нельзя, можно значение одного присвоить другому/новому, удалив атрибут источник.

<img data-src="var" onclick="$(this).attr('src', $(this).data('src')).removeAttr('data-src')">

Fedul 05.03.2015 12:06

спасибо.
но вот если имею такой вид
<div class="image active"><img data-src="" title="" alt=""></div>
<div class="image"><img data-src="" title="" alt=""></div>
<div class="image"><img data-src="" title="" alt=""></div>
<div class="image"><img data-src="" title="" alt=""></div>

и при загрузке страницы мне необходимо чтобы у класса 'active' data-src был изменен на src, что бы показать только одну картинку - как правильно написать скрипт?

laimas 05.03.2015 18:08

$(function() {
    var im = $('div.active img');
    im.attr('src', im.data('src'));
});


Я так понимаю, что нужно не заменить, а все таки присвоить и удалять атрибут data-src не нужно?

Fedul 05.03.2015 18:53

Спасибо!!!
то что нужно, атрибут удалить не проблема, но загвоздка в том, что у меня несколько блоков на странице
<div class="block">
   <div class="image active"><img data-src="/img1.png" title="" alt=""></div>
   <div class="image"><img data-src="" title="" alt=""></div>
   <div class="image"><img data-src="" title="" alt=""></div>
   <div class="image"><img data-src="" title="" alt=""></div>
</div>

<div class="block">
   <div class="image active"><img data-src="/img2.png" title="" alt=""></div>
   <div class="image"><img data-src="" title="" alt=""></div>
   <div class="image"><img data-src="" title="" alt=""></div>
   <div class="image"><img data-src="" title="" alt=""></div>
</div>

и данный скрипт грузит одну и туже картинку (как пример img1.png) ко всем классам active, а должны быть разные

laimas 05.03.2015 19:06

Если несколько, то нужно получить коллекцию элементов, обойти ее в цикле и для каждого элемента произвести операцию.

$(function() {
    $('div.active img').each(function() {
        $(this).attr('src', $(this).data('src'));    
    })
});

Fedul 05.03.2015 19:08

то что нужно!
Спасибо!


Часовой пояс GMT +3, время: 03:49.