2011-01-26 89 views
1

只是想知道如果有人知道为什么下面的代码不起作用(每个()都没有执行)...它工作如果我尝试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 2011-01-26 19:01:35

回答

3

我认为你的PHP应该返回其他元素(表中的tr)。正如JQuery文档所述,在元素的“后代”中查找搜索,而tr不是您html中tr的后代。您可以将响应更改为:

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

而且应该有效。

+0

谢谢大家,这是问题所在。 – Rory 2011-01-26 19:11:53

2

找到只发现后代。在你的情况下,tr是根。

0

如果您对所有TR元素感兴趣,而不是特定表/ tbody/thead/tfoot元素的那些元素,请提出正确的问题(并且不要比您需要的复杂)。此:

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

应该做你。如果您需要更具体的表,你只是优化您的选择:以上

$('table#mySpecialTable tbody tr') 

让你在表的id为mySpecialTable所有元素。