2012-02-08 5 views
0

им пытаются добавить класс CSS в моем яваскрипта коде, но когда я его просмотра в браузере он не кажется, что работатьДобавление CSS в код Javascript?

Херес код

<script> 
var mydate=new Date() 
var year=mydate.getYear() 
if (year < 1000) 
    year+=1900 
var day=mydate.getDay() 
var month=mydate.getMonth() 
var daym=mydate.getDate() 
if (daym<10) 
    daym="0"+daym 
var dayarray=newArray("Sunday","Monday","Tuesday","Wednesday","Thursday", 
         "Friday","Saturday") 
var montharray=newArray("January","February","March","April","May","June", 
         "July","August","September","October","November", 
         "December") 
document.write(""+dayarray[day]+" "+daym+" "+montharray[month]+" "+year+"") 
    .className = 'bigdate'; 
</script> 

Вот CSS:

.bigdate{ 
    color:#03C; 
} 
+2

'document.write(). Classname' для меня не имеет смысла. Откуда у вас это? –

+2

document.write не возвращает узел, который может иметь добавленный к нему класс. – zzzzBov

+1

Вместо 'var year = mydate.getYear() if (year <1000) year + = 1900', вы можете использовать' 'getFullYear()'] (https://developer.mozilla.org/en/JavaScript/ Ссылка/Global_Objects/Дата/getFullYear). –

ответ

6

Это не так, как document.write() работает, он не возвращает ссылку на узел (ы), который он написал.

Try ...

document.write("<span class=\"bigdate\">"+dayarray[day]+" "+daym+" "+montharray[month]+" "+year+"</span>"); 

... или еще лучше ...

var span = document.createElement('span'); 
span.appendChild(document.createTextNode(dayarray[day]+" "+daym+" "+montharray[month]+" "+year+)); 
document.body.appendChild(span); 
+0

+1 для «или еще лучше ...», который не использует кувалду (властно-мудрый), чтобы убить комара. –

1

Вы должны не использование document.write обновить документ. Обновите документ, установив свойство innerHTML или добавив элемент.

<div id="my-element"></div> 
<script> 
.... 
var elem = document.getElementById('my-element'); 
elem.innerHTML = dayarray[day]+" "+daym+" "+montharray[month]+" "+year; 
elem.className = 'bigdate'; 
</script> 

className это свойство, которое ссылается на атрибут class. document.write() не имеет возвратного значения, поэтому никаких свойств. Даже если вы хотите использовать document.write(), то вы должны использовать HTML-теги и добавьте class="bigdate":

document.write('<div class="bigdate">' + ..... + '</div>'); 
0
document.write(""+dayarray[day]+" "+daym+" "+montharray[month]+" "+year+"").className = 'bigdate'; 

Должно быть:

document.write("<div class='bigdate'>"+dayarray[day]+" "+daym+" "+montharray[month]+" "+year+"</div>"). 

Вы должны иметь HTML-элемент, чтобы иметь имя класса.

Смежные вопросы