Получите img src, а затем измените контейнер div

0

У меня этот html

<div class="mytext">
blablabla
</div>

<div class="part2" data-type="background" data-speed="10">
    <img src="images/bb4.jpg" />
</div>

<div class="mytext">
hello hello world
</div>

<div class="part2"    data-type="background" data-speed="10">
    <img src="images/bb5.jpg" />
</div>   

теперь я хочу получить каждый src изображений в контейнере part2, а затем изменить html на этот результат

<div class="mytext">
blablabla
</div>

<div class="part2" style="background:url('images/bb4.jpg') fixed;" data-type="background" data-speed="10">

</div>

<div class="mytext">
hello hello world
</div>

<div class="part2" style="background:url('images/bb5') fixed;" data-type="background" data-speed="10">

</div> 

в основном я должен получить src, а затем отредактировать атрибуты контейнера div и удалить тег img, и я должен сделать это при загрузке страницы

Я написал этот кусок кода, чтобы получить src, но он не работает, и нет части изменения div

var elems = [].slice.call( document.getElementsByClassName("post2") );
elems.forEach( function( elem ){
    elem.onclick = function(){
        var arr = [],
            imgs = [].slice.call( elem.getElementsByTagName("img") );
        if(imgs.length){
            imgs.forEach( function( img ){
                var attrID = img.id;
                arr.push(attrID);
            });
            alert(arr);
        } else {
            alert("No images found.");
        }
    };
});

может кто-нибудь мне помочь? :) спасибо

Теги:

2 ответа

1
$('.part2').each(function(){
  img = $(this).find('img');  
  $(this).css({'background': 'url(' +   img.attr('src') + ') fixed'});
  img.remove();
});
  • 0
    добавьте «исправлено» к фону CSS, и все готово
  • 0
    @ devnull69 спасибо, я пропустил это.
Показать ещё 4 комментария
0

SInce вы добавили тег JQuery. Вот ответ в jquery.

$('#test').click(function(){
    $('.part2').each(function(){
        $(this).attr('style','background:url(\''+ $(this).find('img').attr('src')+'\') fixed;');
        $(this).find('img').remove();
    });
});

или

 $('#test').click(function(){
        $('.part2').each(function(){
            $(this).css('background','url(\''+ $(this).find('img').attr('src')+'\') fixed');
            $(this).find('img').remove();
        });
    });
  • 0
    Все ответы похожи, но этот пример. так что +1 за это.
  • 0
    Вместо установки styel (typo?) Вы можете использовать метод .css() .
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню