为什么jQuery要求你在id选择器前加#?

时间:2015-03-12 22:42:26

标签: jquery html

正如问题所述,为什么我们需要使用$(“#id”)而不仅仅是$(id)?

4 个答案:

答案 0 :(得分:3)

jQuery selectors是大多数CSS selectors specification的实现,其中有几个扩展。

没有#的语法已经有了含义,它代表type selector,而不是id selector

没有引号的语法将是JavaScript variable而不是string literal(完全不受jQuery控制的东西)。当然,您可以使用标识符来访问包含字符串的变量。

答案 1 :(得分:0)

因为#表示您指向了ID,所以您也可以将.用于类

Full Documentation

答案 2 :(得分:0)

Jquery的选择引擎基于Sizzle,它是一个“纯Javascript CSS选择器引擎”。它基于css选择器,所以#包含在想法中。

Sizzle要求将字符串传递给它,因此$( id )无效,除非id是带字符串值的变量。

答案 3 :(得分:0)

jQuery选择器基于CSS选择器。选择器需要计算为字符串。

在您的示例$(id)中。你传递了一个名为id的变量。这不会找到名为'id'的东西,但它会查找id的字符串值。

$('p')将选择所有p个元素
$('#myid')将选择id为myid
的元素 $('。myclass')将选择类myclass

的元素

这是有据可查的 http://api.jquery.com/category/selectors/