2014-01-09 5 views
1

Я не понимаю, почему эта базовая функция работает некорректно в этих браузерах, когда я набираю в консоли браузера сообщение «undefined».Функция jQuery не работает в Chrome и IE

function fillYears(year) { 
     var yearToSet = year - 7; 
     $('#SelectYear a').each(function() { 
      this.text = yearToSet; 
      yearToSet++; 
     }); 
    } 

Извините, если это что-то простое, и я не замечаю. спасибо.

+0

попробовать '$ (это) .text (yearToSet);' –

+0

что не определено? Кстати, вы предлагаете, чтобы этот код работал на Firefox ?! –

+0

только неопределенные или 'fillYears не определено' – Praveen

ответ

3

Try:

function fillYears(year) { 
    var yearToSet = year - 7; 

    $('#SelectYear a').each(function() { 
     $(this).text(yearToSet++); 
    }); 
} 

Или просто:

function fillYears(year) { 
    var yearToSet = year - 7; 

    $('#SelectYear a').text(function() { 
     return yearToSet++; 
    }); 
} 

И если вы хотите отлаживать код, console.log не самый подходящий способ. В большинстве браузеров вы можете поставить оператор debugger; в любом месте вашего кода, чтобы установить точку останова в этом месте.

+0

Спасибо! это работает! – Nacho

3

Вы ничего не возвращаете, поэтому функция возвращает «undefined».

Попробуйте

function fillYears(year) { 
     var yearToSet = year - 7; 
     $('#SelectYear a').each(function() { 
      this.text = yearToSet; 
      yearToSet++; 
     }); 
     return yearToSet; 
    } 
//Also, call the function 

и убедитесь, что есть элемент на странице с идентификатором SelectYear или есть a тег.

PS:

a тег не имеет свойства text.

+1

Это не имеет смысла. Имя функции не предполагает, что оно должно вернуть значение. – plalx

+0

Хорошо, теперь не возвращайте 'undefined', но не заполняйте цифрами ... Thans you – Nacho

+1

@plalx Точно, но ОП спрашивает, почему консольные выходы «неопределенные». Это делает консоль «output» 'yearToSet'. Очевидно, он хочет видеть его ценности. – Cilan

0

Пожалуйста, попробуйте следующее: http://jsfiddle.net/ymuT7/20/

<a id="SelectYear" >1</a> 
<a id="SelectYear" >2</a> 
<a id="SelectYear" >3</a> 

jQuery(document).ready(function($) { 


    fillYears(2000); 
}); 



function fillYears(year) { 
     var yearToSet = year - 7; 
     $("a[id='SelectYear']").each(function() { 
      this.text = yearToSet; 
      yearToSet++; 
     }); 
    } 
Смежные вопросы