imageUrl
변수에 이미지 URL이 있고 jQuery를 사용하여 CSS 스타일로 설정하려고합니다.
$('myObject').css('background-image', imageUrl);
다음과 같이 작동하지 않는 것 같습니다.
console.log($('myObject').css('background-image'));
을 반환합니다 none
.
어떤 생각, 내가 뭘 잘못하고 있니?
imageUrl
변수에 이미지 URL이 있고 jQuery를 사용하여 CSS 스타일로 설정하려고합니다.
$('myObject').css('background-image', imageUrl);
다음과 같이 작동하지 않는 것 같습니다.
console.log($('myObject').css('background-image'));
을 반환합니다 none
.
어떤 생각, 내가 뭘 잘못하고 있니?
답변:
아마 이것을 원할 것입니다 (일반적인 CSS 배경 이미지 선언처럼 만들기 위해) :
$('myObject').css('background-image', 'url(' + imageUrl + ')');
다음과 같이 imageUrl 전후에 큰 따옴표 ( ")를 포함 시키려고합니다.
$('myOjbect').css('background-image', 'url("' + imageUrl + '")');
이렇게하면 이미지에 공백이있는 경우 여전히 속성으로 설정됩니다.
$('myObject').css('background-image', 'url(' + encodeURIComponent(imageUrl) + ')');
$('.myObject').css('background-color', 'green');
작동하는 것을 얻을 수는 있지만 큰 따옴표없이 이미지를 변경하지는 않습니다. 감사!
encodeURIComponent
URL의 일부에 이미 이스케이프 문자가 포함되어 있으면 작동하지 않습니다. 당신은 이미지 URL에 잠재적 인 큰 따옴표를 이스케이프해야하지만 :$('myObject').css('background-image', 'url("' + imageUrl.replace(/"/g, '\\"') + '")');
$('#elem').css('background-image', 'url(' + encodeURIComponent(thumbData.url) + ')');
나에게 준background-image: url("%2Ffiles%2Fusers%2Fthumbs%2F36206608-hd-pics-3.jpg");
다른 사람들이 올바르게 제안하는 것 외에도 개별 CSS 설정 (특히 배경 이미지 URL) 대신 CSS 클래스를 전환하는 것이 더 쉽다는 것을 알았습니다. 예를 들면 다음과 같습니다.
// in CSS
.bg1
{
background-image: url(/some/image/url/here.jpg);
}
.bg2
{
background-image: url(/another/image/url/there.jpg);
}
// in JS
// based on value of imageUrl, determine what class to remove and what class to add.
$('myOjbect').removeClass('bg1').addClass('bg2');
내가 가진 문제 ;
는 url()
값 끝에 세미콜론 을 계속 추가 하여 코드가 작동하지 않는다는 것 입니다.
작동하지 않는 코드 :
$('#image_element').css('background-image', 'url(http://example.com/img.jpg);');
작업 코드 :
$('#image_element').css('background-image', 'url(http://example.com/img.jpg)');
;
작업 코드의 끝에 생략 된 세미콜론이 있습니다. 나는 단지 올바른 구문을 몰랐다. 그리고 그것을 알아 차리는 것은 정말로 어렵다. 바라건대 이것은 같은 보트에있는 다른 사람을 돕습니다.