这是jQuery如何处理子选择器的错误吗?

jQuery如何处理子选择器或者我错过了一些明显的错误? 当孩子不是*时,我无法让它工作。

这是我正在运行的jQuery选择器:

 $("#myTable > tr").each(function() { // do somthing } ); 

表结构是:

 

没有元素与上面的选择器#myTable > tr匹配。 但下面列出的两个选择器工作正常。

 $("#myTable tr") // search all descendants for tr 

或使用通配符匹配孩子:

 $("#myTable > *") // search all child elements 

关于什么可能出错的任何想法?

谢谢你的快速回答! 不幸的是只能选一个。

这是因为如果没有提供tr要素,Firefox会自动在你的tr元素周围添加tbody元素。 你真的不能使用table > tr

你有:

 

但Firefox看到了这个:

 

其他元素可以正常工作:

 
Hi

而选择器:

 alert( $("div > strong").text() ); // Alerts "Hi" 

有一个隐含的

元素添加含义而不是:

 

DOM实际上包含:

 

所以改成它:

 $("#mytable > tbody > tr"); 

在表中使用

元素是一个很好的习惯。

是的,道格完全正确。 只是为了补充他的答案,也许你知道,或许不是,但请记住,jQuery遍历DOM,而不是你发送到浏览器的HTML“文本”。

DOM是浏览器对您发送的HTML的解释。