2015-01-11 3 views
-1

Эта функция, полученная от http://alistapart.com/article/alternate, останавливает мой код JavaScript, и я понятия не имею, почему. Когда этот код активен, другие функции перестают делать что-либо. Может ли кто-нибудь помочь?Функция прекращает работу кода

function setActiveStyleSheet(title) { 
    var i, a, main; 
    for(i=0; (a = document.getElementsByTagName("link")<i>); i++) { 
    if(a.getAttribute("rel").indexOf("style") != -1 
     && a.getAttribute("title")) { 
     a.disabled = true; 
    if(a.getAttribute("title") == title) a.disabled = false; 
    } 
    } 
} 
+0

Вы можете разместить ссылку на свой сайт? –

+1

Вы всегда должны проверять дату, когда смотрите статьи о JavaScript и веб-технологиях в целом. Эта статья * древняя *. Я написал ответ здесь об этой типографии много лет назад. – Pointy

+0

@Pointy это код низкого качества, вызывающий 'getElementsByTagName' в цикле! – Alnitak

ответ

1

Посмотрите на консоли JavaScript:

Uncaught SyntaxError: Unexpected token) 

У вас <i>, где вы должны иметь [i].

0

Проблема с <i> в вашей петле. Существует фиксированная функция

function setActiveStyleSheet(title) { 
    var i, a, main, links; 
    links = document.getElementsByTagName("link"); 
    for(i=0; (a = links[i]); i++) { 
    if(a.getAttribute("rel").indexOf("style") != -1 
     && a.getAttribute("title")) { 
     a.disabled = true; 
     if(a.getAttribute("title") == title) a.disabled = false; 
    } 
    } 
} 

Я передвинулся document.getElementsByTagName("link") к переменной. Это более эффективно, чем поиск DOM в каждом цикле.

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