Как установить изображение src использование jQuery

Я пытаюсь изменить изображение src атрибут с помощью jQuery

jQuery("#imageID").attr('src','http://localhost:8080/images/1/myImage.png' );

использование вышеупомянутого кода, я могу изменить атрибут src, но когда я пробую этот:-

jQuery("#imageID").attr('src',jQuery("#imageBlock").css('background-image') );

я неспособен изменить src.

если

alert ( jQuery("#imageBlock").css('background-image') );

возвраты:

URL (http://localhost:8080/images/1/myImage.png)

Редактирование № 1 Как раз в то самое время, когда я собирался принять решение. Я должен сказать, почти все решение работало в И следующие. Я попробовал:

  • часть (4,-1);
  • разделение (" (") [1]> тогда заменяют (")", "");

Я предполагаю, что другие будут также работать. Но ни одно из решений не работает в IE. Причем причина: в то время как FF возвращается:

URL (http://localhost:8080/images/1/myImage.png)

Возвраты IE:

URL ("http://localhost:8080/images/1/myImage.png")

^^ возражают против кавычек здесь

Теперь, каков мог быть универсальный способ установить src attr. Я должен протестировать браузер, если это - IE или нет?

Это - рабочий код.

var src = "";
    if ( jQuery.browser.msie ) {
        src = jQuery("#imageBlock").css('background-image').slice(5,-2);        
    }else{
        src = jQuery("#imageBlock").css('background-image').slice(4,-1);
    }   
    jQuery("#imageID").attr('src', src );

Мне действительно не нравится он: x. Если существует другое решение, чем это, то сообщите мне, или иначе я приму slice решение немедленно.

43
задан Rakesh Juyal 3 February 2010 в 14:46
поделиться

4 ответа

IMO, Slice более уместно, чем подстроки или замена . Попробуйте это:

jQuery("#imageID").attr(
    'src',
    jQuery("#imageBlock").css('background-image').slice(4,-1)
);

Здесь вы нарезаете строку между URL ( и ) . См. MDC на срезе для подробного описания метода.

35
ответ дан 26 November 2019 в 23:07
поделиться

Вам нужно извлечь url-часть:

var backgroundImage = $("#imageBlock")
    .css('backgroundImage')
    .replace(/"/g,"")
    .replace(/url\(|\)$/ig, "");
jQuery("#imageID").attr('src', backgroundImage);
7
ответ дан 26 November 2019 в 23:07
поделиться

Это потому, что строка url() обернута вокруг нее. Вам нужно будет отделить ее от строки, например, с помощью функции replace...

var bgimg = jQuery("#imageBlock").css('background-image').replace('url(', '');
bgimg.replace(')', '');
2
ответ дан 26 November 2019 в 23:07
поделиться

Вам нужно будет прокрутить URL-адрес ( и закрытие ) запчасти для того, чтобы работать.

Итак URL (http: // localhost: 8080 / images / 1 / myImage.png)

становится

http: // localhost: 8080 / Images / 1 / myImage.png

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

http://www.w3schools.com/jsref/jsref_replace.asp

Возможно:

jQuery ("#imageid") .attr ('src', jQuery ("#Imageblock") .css ( «Фоновое изображение»). Заменить ('URL (', ''). Заменить (')', ''))

0
ответ дан 26 November 2019 в 23:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: