0
var firstBodyChild = document.body.children[0];
$('li', firstBodyChild);

// make a selection within a previous selection
var paragraph = $('p');
$('a', paragraph);

这是网站http://jqfundamentals.com上的指南示例。

有几点不明白:

  1. 据我了解,该格式$()创建了一个对象。所以这意味着paragraph是一个对象 - 但它的属性是什么?它是一个什么样的对象?

2.

var firstBodyChild = document.body.children[0];
$( 'li', firstBodyChild );

如果有人可以解释这部分,我会很高兴。firstBodyChild将是firstChild身体部分,但第二行是什么意思/做什么?

谢谢。

4

3 回答 3

1
  1. 'paragraph' 变量成为一个 jQuery 对象并且可以使用 jQuery 的标准函数集。

  2. 那里的第二行表明 jQuery 应该在 'firstBodyChild' 元素的上下文中查找 <li> 元素。有关详细信息,请参阅此处的文档:http: //api.jquery.com/jQuery/#jQuery1

于 2013-03-07T11:01:02.177 回答
1

$()扩展一个对象——在本例中是一个 DOM 元素——使用所有标准的 jQuery 方法。

和(恕我直言):

$( 'li', document.body.children[0])是一种令人困惑的说法:

$('body *:first li')

换句话说,传递给$()方法的第二个参数定义了li应该在其中找到元素的上下文。

于 2013-03-07T11:02:13.100 回答
1
  1. The$()是 的别名jQuery(),它可能更具可读性。所以你正在调用一个函数并将参数传递给它。
  2. 通常,第一个参数是一个选择器,正如您从 CSS 中知道的那样。第二个参数是可选的,称为上下文。

假设您ul的正文中有两个列表,并且想要将第一个列表元素设为红色,您可以使用正文.children[0]作为上下文来仅获取此元素列表项,如您的第一个代码示例中所示。

然后,您可以继续使用 jQuery 获取所有li元素的列表,无论是在整个文档中(使用$('li')),还是在特定上下文中,例如,ul您已经保存在变量中的第一个列表,使用$('li', firstBodyChild).

调用 jQuery 返回的对象是 DOM 节点的包装器。因此,它存储了可以通过传递的查询识别的元素以及可用于过滤和修改这些元素的一大堆函数。

为了完成这个示例,要将这些列表元素染成红色,您可以使用 jQueries.css来修改这些元素的外观。

var firstBodyChild = document.body.children[0];
$('li', firstBodyChild).css({color: 'red'});
于 2013-03-07T11:04:04.847 回答