函数jQuery在Chrome和IE中不起作用

时间:2014-01-09 13:50:52

标签: javascript jquery

我不明白为什么这个基本功能在这些浏览器中无法正常工作,当我在浏览器控制台中键入消息是“未定义”时。

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

对不起,如果这很简单,我也没注意到。 非常感谢你。

3 个答案:

答案 0 :(得分:3)

你没有返回任何东西,因此该函数返回'undefined'。

尝试

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

并确保页面上有一个ID为SelectYeara标记的元素。

PS:

a代码没有属性text

答案 1 :(得分:3)

尝试:

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;语句,以在该位置设置断点。

答案 2 :(得分: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++;
         });
     }