jQuery 选择器中星号的作用

Effect of an asterisk in a jQuery selector

在 Chrome(版本 63)的 DevTools 控制台中,我输入了以下内容:

注意第二个查询中的额外星号。

两个查询都找到了相同的元素,但第二个查询显然得到了略有不同的结果。我也没想到星号是合法的。

谁能解释一下星号的作用?

请注意,这不仅仅是询问在查询中使用星号,还询问它在紧邻标识符时的效果。

星号代表任何元素。

#right*#right 都应该 return 相同的元素,因为 id 是唯一的。

好的,多亏了上面的评论,我明白发生了什么事了。

#right表示查找id为'right'的元素。它永远不会 return 超过一个元素。

*#right 表示查找 ID 为 'right' 的任何元素,与 div#right 表示查找具有该 ID 的任何 div 相同。如果有多个元素具有该 id,它将 return 多个元素。 (不应该有,但 Chrome 至少可以让你这样做。)

* #right 表示查找 id 为 'right' 的元素,该元素也是另一个元素的后代。如果有不止一个元素具有该 ID,它还会 return 不止一个元素。

尽管最后一种情况可能看起来多余,但如果 'html' 元素是唯一具有 id 'right' 的元素,则它不会匹配任何内容。