2009-05-07 8 views

答えて

6

私はクリックイベントでコードを実行しています。あなたが書いたhtmlはかなり上手いですが、私にはわからない何らかの理由で、うまくいきません。私は周りの仕事を見つけました。 (私は、可視行の最初のtdのすべての値のカンマ区切りの文字列を取得しようとしています)とにかく次のような回避策では、ジョブが完了します。隠されたタグが正しく動作しますが、ありません::目に見えるIE7

6

そのとなります。これを行う

<table class='SimpleTable'> 
    <tr style='display: none;'> 
    <td>test1</td> 
    </tr> 
    <tr> 
    <td>test2</td> 
    </tr> 
    <tr> 
    <td>test3</td> 
    </tr> 
    <tr style='display: none;'> 
    <td>test4</td> 
    </tr> 
    <tr> 
    <td>test5</td> 
    </tr> 
    <tr> 
    <td>test6</td> 
    </tr> 
</table> 

::次のようになりますHTMLと

$("table.SimpleTable tbody tr:visible td:first-child").css('color','red'); 

は私のためのFirefox、IE7での色の赤にします。あなたのHTMLはどのように見えますか?

Here's what I tested the above on

EDIT:それはあなたが今やっている何をする必要があるように私には非常に奇妙です。

var serials = []; 
$("table.SimpleTable tbody tr:visible td:first-child").each(function() { 
    serials.push($.trim($(this).text())); 
}); 
var serials = serials.join(','); 

TDがセレクタから読み込まれている場合は、表示されているものだけにする必要があります。あなたが雑誌に隠されたのTDを取得している(私が強調しなければならない、本当に起こって、バグやどこかのエラーの兆候であるべきでない)場合は、代わりにこのセレクタを試してみてください。

$("table.SimpleTable tbody tr:not(:hidden) td:first-child") 
+0

に私はあなたが言及したセレクタをしようとするチャンスを得るときに何らかの理由で

var notfirst = false; var serials = ""; var tds = $("table.SimpleTable tbody tr:visible td:first-child"); for (var i = 0; i < tds.length; i++) { var td = $(tds[i]); if (td.is(":hidden")) continue; if (notfirst) serials += ","; else notfirst = true; serials += $.trim(td.text()); } 

。しかし、serails.push()とserials.join( "、")は、私が持っているものよりはるかに優れており、確実に実装します。ありがとう。 –

3

ドキュメントから:

「方法:目に見える はjQueryの1.3.2で変更された計算されて、その 親が文書内のスペースを消費した場合の要素 が見えるとし CSSの視認性が 考慮されません。。。」

これは多分これと関係しています。 trの代わりにクラスセレクタなどを使用してみてください。

3

なぜそれほど分割しないのですか?

$("table.SimpleTable").find("tr:visible").find("td:first-child").text() 

+0

私はこれを単一の選択、有用なおかげで使用しました。 – merveotesi

関連する問題