jQuery find()适用于IE,但不适用于Chrome或Firefox

时间:2010-12-26 22:05:24

标签: javascript jquery tablesorter

我正在为jQuery插件tablesorter控件设置自定义textExtraction(可能不相关),并且排序适用于IE,但不适用于Chrome或Firefox。这是JavaScript代码的片段:

    var searchResultsTables = $("table.FilterClass");

    searchResultsTables.tablesorter({
        widgets: ['zebra'],
        widgetZebra: { css: ["Odd", "Even"] },
        headers:
        {
            3: { textExtraction: function (node)
            {
                return $(node).find("img").length;
            }
            },
            4: { sorter: false }
        }
    }
    );

节点是<td>(我相信)。有些单元格中有图像,有些单元格则没有。所以,基本上,这个列应该基于0/1进行排序。所有其他列排序都很好(第5列除外,正如您所见,设置为不可排序)。

以下是排序正在执行的html(2行):

<table class="SearchResultsTable FilterClass tablesorter">
    <tr class="Odd">
        <td class="SearchResultsCell RightBrownBorder NameCell">
        <a href="/Candidate/2">Bill Clinton</a></td>
        <td class="SearchResultsCell RightBrownBorder PartyCell">Democrat</td>
        <td class="SearchResultsCell RightBrownBorder DistrictCell"></td>
        <td class="SearchResultsCell RightBrownBorder IncumbentCell">
            <img src="/Images/green_check_mark.gif" />
        </td>
        <td class="SearchResultsCell PoliticalSpectrumIndexCell"></td>
    </tr>
    <tr class="Even">
        <td class="SearchResultsCell RightBrownBorder NameCell">
        <a href="/Candidate/13">Newt Gingrich</a></td>
        <td class="SearchResultsCell RightBrownBorder PartyCell" title="Party for Socialism and Liberation">Party for...</td>
        <td class="SearchResultsCell RightBrownBorder DistrictCell"></td>
        <td class="SearchResultsCell RightBrownBorder IncumbentCell"></td>
        <td class="SearchResultsCell PoliticalSpectrumIndexCell"></td>
    </tr>

为什么这在Chrome或Firefox中不起作用?

1 个答案:

答案 0 :(得分:1)

我认为你不能在header选项中放入textextraction函数。

当我编写像你这样的例子时,我有了这个,并且它有效:

 var searchResultsTables = $("table.FilterClass");        

 searchResultsTables.tablesorter({          
    widgets: ['zebra'],          
    widgetZebra: { css: ["Odd", "Even"] }, 
    textExtraction: function (node)              
        {    
            if (node.cellIndex == 3)
            {
                return $(node).find("img").length;   
            }
            else
            {
                return node.innerHTML
            }           
        }   
    headers:          
    {                           
        4: { sorter: false }   
    }     
} );