必须把alert点击之后才变色

$(function () {
alert(“1”)
$("#tableUserInfo tr:odd").addClass("odd");
$("#tableUserInfo tr:even").addClass("even");
})
如果没alert就没有效果

句应该是出现在一个事件函数里面的,例如

$("#my_table").mouseover(function() {
$("tbody>tr:odd",this).addClass(options.odd);
});

如果没有第二个参数 this,jQuery 选择器会从 DOM 的顶端开始搜索.但现在 jQuery 会将选择器局限于 this,也就是 #my_table.

$("tbody>tr:odd",this).addClass(options.odd);

也可以写为

$(this).find("tbody>tr:odd").addClass(options.odd);

是因为tableUserInfo这个元素还没加载完,你就执行,所以颜色不变
alert具有断点效果,弹出的时间,元素已经加载完毕了,所以可以有颜色。

解决办法,$.ready函数执行。后再将函数写在标签之后。

希望能帮到你...

既然你的数据是通过ajax生成的,怎么不在吧html代码放到页面上之后在用JS执行呢?