1

我阅读了有关为 tablesorter 编写自定义解析器的文档。但我不知道如何使它正确地为高尔夫分数工作。

我希望分数排序如下:-11 -10 -9 -8 -7 -1 E 1 2 9 10 11

我就是不能让它像那样工作。有谁知道如何正确地将其从负 2 位数字变为 1 位数字到字母 E 而不是 0,以及从正位数字到正 2 位数字?

我试过这个没有成功:

// add parser through the tablesorter addParser method 
$.tablesorter.addParser({ 
    // set a unique id 
    id: 'golfscores', 
    is: function(s) { 
        // return false so this parser is not auto detected 
        return false; 
    }, 
    format: function(s) { 
        // format your data for normalization 
        return s.toLowerCase().replace(/E/,0); 
    }, 
    // set type, either numeric or text 
    type: 'numeric' 
}); 



$(document).ready(function() {
// call the tablesorter plugin
$("#myTable").tablesorter({
    headers: {0:{sorter:false},1:{sorter:'golfscores'}},
    widgets: ['zebra']
});

如果有帮助,表内行的标记如下:

<tr>
              <td align="center">
              <select name="ddl_slots_11052" class="ddl_slots" id="ddl_slots_11052">
                  <option value="">-</option>

                    <option value="1"  selected="selected">1</option>

                    <option value="2" >2</option>

                    <option value="3" >3</option>

                    <option value="4" >4</option>

                    <option value="5" >5</option>

                    <option value="6" >6</option>

                    <option value="7" >7</option>

                    <option value="8" >8</option>

                </select></td>



             <td align="center"> 
                    <strong>-3</strong>
                    </td>
              <td align="left">Larry</td>
              <td align="left">Larry</td>
              <td align="left">Mize</td>

              <td align="center">
                                    F
              </td>
              <td align="center">-3</td>
              </tr>
            <input type="hidden" name="score_11052" value="-3" />

            <tr>
              <td align="center">
              <select name="ddl_slots_10981" class="ddl_slots" id="ddl_slots_10981">
                  <option value="">-</option>

                    <option value="1" >1</option>

                    <option value="2"  selected="selected">2</option>

                    <option value="3" >3</option>

                    <option value="4" >4</option>

                    <option value="5" >5</option>

                    <option value="6" >6</option>

                    <option value="7" >7</option>

                    <option value="8" >8</option>

                </select></td>



             <td align="center"> 
                    <strong>2</strong>
                  </td>
              <td align="left">Jerry</td>
              <td align="left">Jerry</td>
              <td align="left">Pate</td>

              <td align="center">
                                    F
              </td>
              <td align="center">2</td>
              </tr>
4

1 回答 1

1

您应该返回一个数字而不是文本,尝试将格式函数更改为:

format: function(s) { 
    // Any letters will return as zero
    return parseFloat(s) || 0; 
}, 
于 2013-07-15T22:14:45.587 回答