テーブルプロバイダJqueryプラグインを使用して、列をクリックしてHTMLテーブルの行を並べ替える。ほとんどの場合、テーブルセルには<td>hello</td>
のような簡単なマークアップが含まれているため、デフォルトの動作は正常に動作します。マークアップを含む列別にテーブルの並べ替えを行う
しかしながら、表の1列は、(上記のように)この
<td>
<a id="1" class="festivalSubscribe " action="create"
controller="festivalSubscription" onclick="/* Lots of Javascript */">Not Subscribed
</a>
<a id="1" class="festivalUnsubscribe hide" action="delete"
controller="festivalSubscription" onclick="/* Lots of JavaScript */">Subscribed
</a>
</td>
この列の各セルは、2つのリンクが含まれている様細胞、常に目に見えないであろうそのうちの一つを含んでいる(hide
クラスを有するもの) 。この列を表示リンクテキスト(「購読していません」または「購読済み」)でソートしたいとします。
プラグインは、a functionを定義するamオプションを提供します。その結果は、列のソート方法の決定に使用されます。
textExtraction: function(node) {
// extract data from markup and return it
return node.childNodes[0].childNodes[0].innerHTML;
}
しかし、私はそれが正しく簡単なケース<td>hello</td>
と上記より複雑なケースを並べ替えられますように、この関数を定義する方法を見つけることができません。
おそらく.innerTextなので、実際のテキストコンテンツのみを取得し、タグは取得しません。 –
私が欲しいのは 'hide'クラスのメンバーではないリンクのテキストですが、JQueryでそれを表現する方法はわかりません –
最新のブラウザでは' node.textContent'を使うことができます古いブラウザでは 'node.innerText'を使う必要があります。 –