我不明白为什么这个基本功能在这些浏览器中无法正常工作,当我在浏览器控制台中键入消息是“未定义”时。
function fillYears(year) {
var yearToSet = year - 7;
$('#SelectYear a').each(function () {
this.text = yearToSet;
yearToSet++;
});
}
对不起,如果这很简单,我也没注意到。 非常感谢你。
答案 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为SelectYear
或a
标记的元素。
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++;
});
}