Jquery 循环GridView模版列 ,该怎么循环?。。############在线等! 100%j结贴
$(function () {
$("#GridView1 tr").each(function () {
$bt = $(this).children().eq(8).children().attr("id")
$ph = $(this).children().eq(2).children().text();
$("#" + $bt).click(function () {
alert($ph);
})
})
})
在GridView中,第9列是模版列,里面放一个按钮,现在需要实现点击这个按钮获取到这一行第3列的内容。
每次弹出来的都是这一页最后一行第3列的内容。调试的时候发现循环了这一页所有的行。但是我点击的只是一行的按钮!为什么上面我那样循环不对? 在线等。。。
[解决办法]
你这样写不是很蛋疼吗?
$("#GridView1 tr .bnt样式名").click(function(){
var _v= $(this).closest("tr").find("td").eq(2).text();
alert(_v);
});
[解决办法]
清楚了,原来是个蛋疼问题。
我到现在也不知道GridView是哪里的。
$(function () {
$("#GridView1 tr").each(function () {
$bt = $(this).children().eq(8).children().attr("id")
$("#" + $bt).click((function(){
$ph = $(this).children().eq(2).children().text();
return function () {
alert($ph);
}
})() )
})
})
[解决办法]
做闭包
$(function () {
$("#GridView1 tr").each(function () {
$bt = $(this).children().eq(1).children().attr("id")
$ph = $(this).children().eq(0).children().text();
$("#" + $bt).click((function ($ph) {
return function () {
alert($ph);
}
})($ph)
);
})
})
[解决办法]
不过最好通过DOM关系来获取好些,闭包比较容易内存泄露
$("#GridView1 tr").each(function () {
$bt = $(this).children().eq(1).children().attr("id")
$("#" + $bt).click(function () {
$ph = $(this).closest('tr').children().eq(0).children().text();
});
})