table 关键字搜索 前台

/**
* 在某个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秒滑动到指定位置
}

你可能感兴趣的:(table 关键字搜索 前台)