var firstBodyChild = document.body.children[0];
$('li', firstBodyChild);
// make a selection within a previous selection
var paragraph = $('p');
$('a', paragraph);
这是网站http://jqfundamentals.com上的指南中的示例。
我不明白的一些事情:
$()
根据我的理解创建了一个对象。这意味着paragraph
是一个对象 - 但它的属性是什么?它是什么类型的对象?2
var firstBodyChild = document.body.children[0];
$( 'li', firstBodyChild );
如果有人能解释这一部分,我会很高兴。 firstBodyChild
将是正文部分中的firstChild
,但第二行是什么意思/做什么?
感谢。
答案 0 :(得分:1)
'paragraph'变量成为jQuery对象,可以使用jQuery的标准函数集。
第二行表明jQuery应该寻找< li> 'firstBodyChild'元素上下文中的元素。有关详细信息,请参阅此处的文档:http://api.jquery.com/jQuery/#jQuery1
答案 1 :(得分:1)
$()
使用所有标准jQuery方法扩展了一个对象 - 在本例中是一个DOM元素。
和(恕我直言):
$( 'li', document.body.children[0])
是一种令人困惑的说法:
$('body *:first li')
换句话说,传递给$()
方法的第二个参数定义了应该找到li
个元素的上下文。
答案 2 :(得分:1)
$()
是jQuery()
的别名,可能更具可读性。所以你正在调用一个函数并将参数传递给它。 假设您的身体中有两个列表ul
,并且想要将第一个列表元素设为红色,则可以使用正文.children[0]
作为上下文来仅获取此元素列表项,就像你的第一个代码示例一样。
然后,您可以继续使用jQuery获取所有li
元素的列表,可以在整个文档中(使用$('li')
),也可以在特定的上下文中,例如,第一个使用ul
列出已保存在变量中的$('li', firstBodyChild)
。
调用jQuery的返回对象是DOM节点的包装器。因此它存储了可以通过传递的查询识别的元素以及可用于过滤和修改这些元素的一大堆函数。
要完成此示例,要将这些列表元素染成红色,可以使用jQueries .css
来修改这些元素的外观。
var firstBodyChild = document.body.children[0];
$('li', firstBodyChild).css({color: 'red'});