2

tdjQuery を使用して、特定のテキストを含まないテーブル内のすべての行を選択したいと考えています。

次の行で行を選択できます。

var x = $('td:contains("text"):parent');  //muliple td's in each tr

:notセレクターを使用して選択を反転するにはどうすればよいですか?

編集: 上記のコード行が本当に正確だとは思いません。これは私が最初に行を持っていた方法です:

var x = $('td:contains("text")).parent();  //muliple td's in each tr

選択を反転しようとすると、たまたまテキストを含まない td が含まれているため、すべての行を取得します。

4

2 に答える 2

5

これを試して:

var $x = $('td:not(:contains("text")):parent');

フィドルのデモ

于 2013-05-22T17:13:34.330 に答える
3

ケース 1: すべての TD でテキスト 'my text' を含むすべての TR を選択する

私は疑似にあまり依存しません。フィルターを使用して以下のようなことを試してください (内部的に疑似はとにかく同じことをします)

$('tr').filter(function () {
   return $(this).find('td').filter(function () {
                return $(this).text().indexOf('myText') == -1;
          }).length;
}); //would return all tr without text 'myText'

デモ: http://jsfiddle.net/dWuzA/

ケース 2: 任意の TD に「my text」というテキストを含むすべての TR を選択する

@squintはコメントで優れた点を指摘しました

そのため、どの TD にも特定のテキストが含まれていないすべての TR を選択する場合は、条件を逆にすることができます。以下を参照してください。

デモ: http://jsfiddle.net/dWuzA/1/

$(function () {
    $('tr').filter(function () {
        return !$(this).find('td').filter(function () {
            return $(this).text().indexOf('22') != -1;
        }).length;
    }).addClass('highlight');
});
于 2013-05-22T17:12:23.697 に答える