Проверка Javascript w3c - PullRequest
       0

Проверка Javascript w3c

1 голос
/ 05 ноября 2011

Я пытаюсь показать / скрыть содержимое в следующем типе документа: !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"

Вот мой javascript:

<script type="text/javascript"> function question(clicked) {
      var q = document.getElementsByTagName("div");
      for(var x=0; x<q.length; x++) {
            title = q[x].getAttribute("title");
            if (title == 'q') {
                  if (q[x].id == clicked) {
                        if (q[x].style.display == 'block') {
                              q[x].style.display = 'none';
                        }
                        else {
                              q[x].style.display = 'block';
                        }
                  }else {
                        q[x].style.display = 'none';
                  }

           }
      } } </script>

При проверке он возвращает эти ошибки: 1. ОшибкаСтрока 9, столбец 30: символ ";"не допускается в списке спецификаций атрибутов

        for(var x=0; x<q.length; x++) {
  1. Строка ошибки 9, столбец 30: элемент "q.length" не определен

        for(var x=0; x<q.length; x++) {
    
  2. Строка ошибки 25, столбец 9: конечный тег для «q.length» опущен, но был указан номер OMITTAG

  3. Информационная строка 9, столбец 21: начальный тег былздесь

        for(var x=0; x<q.length; x++) {
    

Я сейчас изучаю Javascript и уже пытался Google и исправить это около 3 десятков способов к настоящему времени.Может кто-нибудь мне помочь?Если мне нужно попробовать другой скрипт для показа / скрытия, на этом этапе я бы выбрал то, что у меня есть, и сделал бы это.

Заранее спасибо!

Ответы [ 2 ]

6 голосов
/ 05 ноября 2011

Используйте CDATA секций.< имеет особое значение для анализатора.

<script>
//<![CDATA[
 ...JavaScript code..
//]]></script>

Валидатор обнаружил < и пытается проанализировать новый тег <q.length.Когда точка с запятой обнаружена, анализатор не знает, как с этим справиться, и выдает ошибку.Используя CDATA, вы фактически говорите: «Все, что находится внутри этого раздела, следует интерпретировать как обычный текст, а не анализировать.

Вставьте свой код в http://validator.w3.org/check (проверка путем прямого ввода),используя следующие настройки: «Проверить фрагмент документа, XHTML 1.0».

1 голос
/ 05 ноября 2011

Если вы переместите свои функции javascript во внешний файл, а затем создадите ссылку на этот файл в разделе заголовка страницы, то валидатору не нужно беспокоиться о них.

например,

<script src="functions.js" type="text/javascript"></script>

Это также позволяет повторно использовать функции на нескольких страницах без повторения кода.

Еще одним преимуществом является то, что браузер пользователя будет кэшировать файл js при первом обнаружении, поэтому на последующих страницах файл функций javascript будет извлекаться из кэша, а не загружаться вместе со страницей.*

...