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' 的元素,则它不会匹配任何内容。
在 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' 的元素,则它不会匹配任何内容。