2011-01-26 22 views
1

誰もが次のコードが動作しない理由を知っているかどうかは疑問です(each()は全く実行されません)...何らかの理由でtd要素を試してもtr要素を試しても動作しますか?JQueryはtr要素では機能しません。

HTMLは、PHPスクリプトによって返され、事前に

<tr class="my_files_row"><td>bla</td><td>bla</td></tr> 


function update(html) 
{ 
    $(html).find('tr').each(function() 
    { 
     alert('success'); 
    }) 
} 

のような感謝に見えるされます!

+1

あなたは 'html'引数として何を渡していますか?何かが起きた場合は、それ自身の中に何も見つからないでしょう。要素そのものです。 – Jamie

答えて

3

あなたのPHPは他の要素(おそらくテーブル)の内側にtrを返すべきだと思います。 JQueryのドキュメンテーションが述べるように、要素の "子孫"に関する検索を見つけ、trはあなたのhtmlのtrの子孫ではありません。応答を変更するには、

<table> <tr class="my_files_row"><td>bla</td><td>bla</td></tr> </table> 

とする必要があります。

+0

ありがとう、これが問題でした。 – Rory

2

Findのみ子孫を見つけます。あなたの場合は、trがルートです。

0

特定のtable/tbody/thead/tfoot要素のものではなく、すべてのTR要素に興味がある場合は、適切な質問をしてください(必要以上に複雑ではありません)。これは

$('tr').each(function(){ 
    var tr = $(this) ; 
    ... 
}) ; 

です。

$('table#mySpecialTable tbody tr') 

は、上記のあなたのID mySpecialTableとテーブルの中のすべての要素を与える:あなたはより具体的なテーブルにする必要がある場合、あなたは自分のセレクタを絞り込みます。

関連する問題