2013-01-06 3 views
0

Я новичок, поэтому это, вероятно, очень просто, но это не для меня.Почему этот скрипт javascript не работает?

<div id="abc" style="width:100px; height:100px; background-color:Blue;" onclick="change()"> 
    Hi 
</div> 

А вот сценарий так, что при нажатии на поле должен изменить текст. Но нет. Зачем?

function change() 
{ 
    var text = "abcde"; 
    var new1 = ""; 
    var element = document.getElementById('abc'); 
    for (var i=0;i<text.length;i++) 
    { 
     new1 = substring(i,text.length-i); 
     element.innerHTML = new1; 
    } 
} 

jsfiddle: here.

ответ

3

substring() должен быть применен к строке (тот, который вы хотите извлечь часть), так что в вашем случае, я полагаю, вы намерены что-то вроде этого:

function change() 
{ 
    var text = "abcde"; 
    var new1 = ""; 
    var element = document.getElementById('abc'); 
    for (var i=0;i<text.length;i++) 
    { 
     new1 = text.substring(i,text.length-i-1); 
     element.innerHTML = new1; 
    } 
} 

example fiddle

+1

I думаю, проблема в том, что функция даже не выполняется (по крайней мере, в Jfiddle). Если вы установите предупреждение в верхней части функции, а затем нажмите на div, это не сработает. – fdsa

+0

@fdsa В своей скрипте код JS помещается в событие onLoad. Таким образом, при разборе соответствующего div не известно. Я изменил это на «no wrap (head)», поэтому он работает на скрипке. – Sirko

+0

Спасибо. Это была половина проблемы. Другая половина, я видела, была в том, что слева есть коробка, в которой у меня была onLoad, которую я обнаружил, переключаясь между обоими jsfiddles. Еще раз спасибо. – ispiro

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