请教jquery单击表格的tr弹出对话框的问题

JS

$(document).ready(tableClick); function tableClick(){ $("#t1>tbody>tr").click(function(){ alert("dd"); }); }

html:

标题作者更新时间操作
啊发撒旦发生test2009/12/12删除 修改
阿斯顿发撒旦发生发test2009/12/12删除 修改

现在的问题是,鼠标单击行可以正确弹出提示框,但是我想要的是,表格的最后一列不支持此操作,就是说在最后一列上单击鼠标不想弹出提示框,请问该如何写呢,如果我在最后一列的td加上class="noAlert",是否可以过滤掉这个td的单击呢,谢谢了

还有一个问题就是:alert(34.33+3.434);为什么等于37.763999999999996

精度问题,这是语言中普遍现象;
跟计算机存取精度的方法有关系。
加法:
[code="java"]//说明:javascript的加法结果会有误差,在两个浮点数相加的时候会比较明显。这个函数返回较为精确的加法结果。
//调用:accAdd(arg1,arg2)
//返回值:arg1加上arg2的精确结果
function accAdd(arg1,arg2){
var r1,r2,m;
try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0}
try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0}
m=Math.pow(10,Math.max(r1,r2))
return (arg1*m+arg2*m)/m
}

//给Number类型增加一个add方法,调用起来更加方便。
Number.prototype.add = function (arg){
return accAdd(arg,this);
}[/code]
减法
[code="java"]//说明:javascript的减法结果会有误差,在两个浮点数相加的时候会比较明显。这个函数返回较为精确的减法结果。
//调用:accSub(arg1,arg2)
//返回值:arg1减上arg2的精确结果
function accSub(arg1,arg2){

return accAdd(arg1,-arg2);
}

//给Number类型增加一个sub方法,调用起来更加方便。
Number.prototype.sub = function (arg){
return accSub(this,arg);
}[/code]

乘法
[code="java"]//说明:javascript的乘法结果会有误差,在两个浮点数相乘的时候会比较明显。这个函数返回较为精确的乘法结果。
//调用:accMul(arg1,arg2)
//返回值:arg1乘以arg2的精确结果
function accMul(arg1,arg2)
{
var m=0,s1=arg1.toString(),s2=arg2.toString();
try{m+=s1.split(".")[1].length}catch(e){}
try{m+=s2.split(".")[1].length}catch(e){}
return Number(s1.replace(".",""))*Number(s2.replace(".",""))/Math.pow(10,m)
}

//给Number类型增加一个mul方法,调用起来更加方便。
Number.prototype.mul = function (arg){
return accMul(arg, this);
}[/code]
除法
[code="java"]//说明:javascript的除法结果会有误差,在两个浮点数相除的时候会比较明显。这个函数返回较为精确的除法结果。
//调用:accDiv(arg1,arg2)
//返回值:arg1除以arg2的精确结果
function accDiv(arg1,arg2){
var t1=0,t2=0,r1,r2;
try{t1=arg1.toString().split(".")[1].length}catch(e){}
try{t2=arg2.toString().split(".")[1].length}catch(e){}
with(Math){
r1=Number(arg1.toString().replace(".",""))
r2=Number(arg2.toString().replace(".",""))
return (r1/r2)*pow(10,t2-t1);
}
}

//给Number类型增加一个div方法,调用起来更加方便。
Number.prototype.div = function (arg){
return accDiv(this, arg);
}[/code]

这样写可以排除掉

function tableClick(){
$("#t1 > tbody > tr > [color=red]td:not(.noAlert)[/color]").click(function(){
alert("dd");

});
}

晕了。你把最后一行放到另外一个tbody里面不就行了。。

javascript对浮点数的操作也有精度的问题,不要用这种方式

使用以下方式可以
js浮点数精确计算函数(加,减,乘,除)

//浮点数加法运算
function FloatAdd(arg1,arg2){
var r1,r2,m;
try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0}
try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0}
m=Math.pow(10,Math.max(r1,r2))
return (arg1*m+arg2*m)/m
}

//浮点数减法运算
function FloatSub(arg1,arg2){
var r1,r2,m,n;
try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0}
try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0}
m=Math.pow(10,Math.max(r1,r2));
//动态控制精度长度
n=(r1>=r2)?r1:r2;
return ((arg1*m-arg2*m)/m).toFixed(n);
}

//浮点数乘法运算
function FloatMul(arg1,arg2)
{
var m=0,s1=arg1.toString(),s2=arg2.toString();
try{m+=s1.split(".")[1].length}catch(e){}
try{m+=s2.split(".")[1].length}catch(e){}
return Number(s1.replace(".",""))*Number(s2.replace(".",""))/Math.pow(10,m)
}

//浮点数除法运算
function FloatDiv(arg1,arg2){
var t1=0,t2=0,r1,r2;
try{t1=arg1.toString().split(".")[1].length}catch(e){}
try{t2=arg2.toString().split(".")[1].length}catch(e){}
with(Math){
r1=Number(arg1.toString().replace(".",""))
r2=Number(arg2.toString().replace(".",""))
return (r1/r2)*pow(10,t2-t1);
}
}

[color=blue][b]
这样就可以了!:[/b][/color]
[code="js"]
function tableClick(){
$("#t1>tbody>tr").not(" :last-child").click(function(){
alert("dd");
});
} [/code]

再不改html代码情况下,不能使用:last选择器。
看看分析:
[url=http://api.jquery.com/not-selector/]http://api.jquery.com/not-selector/[/url]
仔细查看:not的使用说明:
[quote]Description: Selects all elements that do not match the given selector.[/quote]
再看看:last的使用
[quote]Description: Selects the last matched element.[/quote]
注意[color=red]已经匹配到的元素[/color]的真正意思。
not(:last)意思为在已经匹配到的元素上去掉最后一个。

可以使用last-child 元素
正确的写法如下:
[code="java"]function tableClick(){

$("#t1>tbody>tr>td").not(" :last-child").click(function(){

alert("dd");

});

}[/code]