/**
* 在某个Datatable中查找包含了指定文字的第一个td,并高亮。
* 如果本Datatable中其中某行已经高亮,本行取消高亮,并从下一行开始继续查找。
* 如果没有找到,则提示查找结束。
*
* 找到依据: search-data的值中包含待查找的文字。
*/
Pagecommon.findTdInDataTableWithText=function(tableObj, data, oldColor, newColor){
if (tableObj == null || tableObj == undefined || data == undefined || data == null || data == "") return;
if (oldColor == undefined) oldColor = 'white';
if (newColor == undefined) newColor = 'lightgreen';
var tbody = $(tableObj).find('tbody');
if (tbody.length < 1) {
//查找失败。
Pagecommon.alert('search_fail');
return;
}
var searchStart = false;
var searchedTd = tbody.find('tr td[searched][searched!=""]');
// 清理原先选中的。
searchedTd.css('background',oldColor);
searchedTd.attr('searched','');
if (searchedTd.length > 0) {
searchedTd = searchedTd[0];
} else {
searchStart = true;
}
var searchEnd = true;
// 标识开始查找
tbody.find('tr td[search-data][search-data!=""]').each(function(index,element){
Pagecommon.debug(index, element);
if(searchStart === true){
if ($(this).attr('search-data').indexOf(data.trim())>=0) {
$(this).css('background',newColor);
$(this).attr('searched','searched');
var toindex=$(this).siblings().eq(0).text();
//
scrollToLocation(tableObj,toindex);//滚动效果
searchEnd = false;
return false;
}
} else {
searchStart = (this === searchedTd);
}
return true;
});
if (searchEnd === true) {
toastr.success('查找完成');
}
return;
}
//滚动效果
function scrollToLocation( divtable,index) {
var mainContainer = $(divtable),
scrollToContainer = mainContainer.find('tr').eq(index);
//动画效果
mainContainer.animate({
scrollTop: scrollToContainer.offset().top - mainContainer.offset().top + mainContainer.scrollTop()
}, 300);//0.3秒滑动到指定位置
}