2013-09-06 16 views
22

Mam następujące HTML:Javascript Ustawianie obrazu tła DIV za pomocą parametru funkcji i funkcji

<div id="tab1" style="position:relative; background-image:url(buttons/off.png); 
    <a href="javascript:ChangeBackgroundImageOfTab('tab1', 'on');"> 
     <img id="DivBtn1" name="DivBtn1" src="buttons/text.png" > 
    </a> 
</div> 

oraz następujące javascript:

function ChangeBackgroungImageOfTab(tabName, imagePrefix) 
{ 
    document.getElementById(tabName).style.background-image= 'url("buttons/" + imagePrefix + ".png")'; 
} 

Problem powstaje, gdy próbuję ustawić obraz tła kart poprzez wywołanie getElementByID - teraz wiem, jak utworzyć dynamiczny adres URL, który używa parametru, który został przekazany, wraz z niektórymi innymi zakodowanymi wartościami. W tym przypadku zamieniamy obraz tła OFF na obraz w tle.

Jak mogę to zrobić? Czy istnieje jakiś sposób użycia zmiennej javascript, przypisanie jej pełnej ścieżki, a następnie wysłanie jej do wywołania jako ścieżki obrazu tła?

Odpowiedz

38
+2

Dlaczego '' 'jest zawarte w ciągu znaków? I nie widziałem do tej pory, ale nie możesz mieć' -' w nazwie właściwości lub zmiennej, (będzie interpretowane jako operator), użyj wielbłąda: 'backgroundColor'. –

+0

Tak, dobry punkt. :) – TyMayn

+0

tworzenie łańcucha osobno działało, wstawianie go nie działało, ale skompilowane i uruchomione poprawnie bez błędów, dzięki za pomoc! –

8

Z tego co wiem, poprawna składnia jest następująca:

function ChangeBackgroungImageOfTab(tabName, imagePrefix) 
{ 
    document.getElementById(tabName).style.backgroundImage = "url('buttons/" + imagePrefix + ".png')"; 
} 

Więc zasadniczo getElementById(tabName).backgroundImage i podzieliła ciąg znaków:

"cssInHere('and" + javascriptOutHere + "/cssAgain')"; 
+0

getelementbyId nie potrzebuje #divname tylko nazwy identyfikatora bez # –

Powiązane problemy