Подтвердить что ты не робот

Как установить изображение 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);
  • split ( "(" ) [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.

4b9b3361

Ответ 1

IMO, slice более подходит, чем substring или replace. Попробуйте следующее:

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

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

Ответ 2

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

var backgroundImage = $("#imageBlock")
    .css('backgroundImage')
    .replace(/"/g,"")
    .replace(/url\(|\)$/ig, "");
jQuery("#imageID").attr('src', backgroundImage);

Ответ 3

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

var bgimg = jQuery("#imageBlock").css('background-image').replace('url(', '');
bgimg.replace(')', '');

Ответ 4

Вам нужно будет отключить части url( и закрытие ) для этого.

So 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('background-image').replace('url(','').replace(')','') )