Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
J
jquery
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
夏彬
jquery
Commits
2875460f
Commit
2875460f
authored
Dec 19, 2008
by
John Resig
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added selector path logging (creates a trail that plugins can use).
parent
0935f4a0
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
80 additions
and
7 deletions
+80
-7
core.js
src/core.js
+22
-7
core.js
test/unit/core.js
+58
-0
No files found.
src/core.js
View file @
2875460f
...
@@ -38,6 +38,7 @@ jQuery.fn = jQuery.prototype = {
...
@@ -38,6 +38,7 @@ jQuery.fn = jQuery.prototype = {
if
(
selector
.
nodeType
)
{
if
(
selector
.
nodeType
)
{
this
[
0
]
=
selector
;
this
[
0
]
=
selector
;
this
.
length
=
1
;
this
.
length
=
1
;
this
.
context
=
selector
;
return
this
;
return
this
;
}
}
// Handle HTML strings
// Handle HTML strings
...
@@ -64,7 +65,10 @@ jQuery.fn = jQuery.prototype = {
...
@@ -64,7 +65,10 @@ jQuery.fn = jQuery.prototype = {
return
jQuery
().
find
(
selector
);
return
jQuery
().
find
(
selector
);
// Otherwise, we inject the element directly into the jQuery object
// Otherwise, we inject the element directly into the jQuery object
return
jQuery
(
elem
);
var
ret
=
jQuery
(
elem
);
ret
.
context
=
document
;
ret
.
selector
=
selector
;
return
ret
;
}
}
selector
=
[];
selector
=
[];
}
}
...
@@ -82,6 +86,9 @@ jQuery.fn = jQuery.prototype = {
...
@@ -82,6 +86,9 @@ jQuery.fn = jQuery.prototype = {
return
this
.
setArray
(
jQuery
.
makeArray
(
selector
));
return
this
.
setArray
(
jQuery
.
makeArray
(
selector
));
},
},
// Start with an empty selector
selector
:
""
,
// The current version of jQuery being used
// The current version of jQuery being used
jquery
:
"@VERSION"
,
jquery
:
"@VERSION"
,
...
@@ -104,13 +111,20 @@ jQuery.fn = jQuery.prototype = {
...
@@ -104,13 +111,20 @@ jQuery.fn = jQuery.prototype = {
// Take an array of elements and push it onto the stack
// Take an array of elements and push it onto the stack
// (returning the new matched element set)
// (returning the new matched element set)
pushStack
:
function
(
elems
)
{
pushStack
:
function
(
elems
,
name
,
selector
)
{
// Build a new jQuery matched element set
// Build a new jQuery matched element set
var
ret
=
jQuery
(
elems
);
var
ret
=
jQuery
(
elems
);
// Add the old object onto the stack (as a reference)
// Add the old object onto the stack (as a reference)
ret
.
prevObject
=
this
;
ret
.
prevObject
=
this
;
ret
.
context
=
this
.
context
;
if
(
name
===
"find"
)
ret
.
selector
=
this
.
selector
+
(
this
.
selector
?
" "
:
""
)
+
selector
;
else
if
(
name
)
ret
.
selector
=
this
.
selector
+
"."
+
name
+
"("
+
selector
+
")"
;
// Return the newly-formed element set
// Return the newly-formed element set
return
ret
;
return
ret
;
},
},
...
@@ -265,7 +279,7 @@ jQuery.fn = jQuery.prototype = {
...
@@ -265,7 +279,7 @@ jQuery.fn = jQuery.prototype = {
return
this
.
pushStack
(
/
[^
+>
]
[^
+>
]
/
.
test
(
selector
)
?
return
this
.
pushStack
(
/
[^
+>
]
[^
+>
]
/
.
test
(
selector
)
?
jQuery
.
unique
(
elems
)
:
jQuery
.
unique
(
elems
)
:
elems
);
elems
,
"find"
,
selector
);
},
},
clone
:
function
(
events
)
{
clone
:
function
(
events
)
{
...
@@ -319,14 +333,14 @@ jQuery.fn = jQuery.prototype = {
...
@@ -319,14 +333,14 @@ jQuery.fn = jQuery.prototype = {
return
selector
.
call
(
elem
,
i
);
return
selector
.
call
(
elem
,
i
);
})
||
})
||
jQuery
.
multiFilter
(
selector
,
this
)
);
jQuery
.
multiFilter
(
selector
,
this
)
,
"filter"
,
selector
);
},
},
not
:
function
(
selector
)
{
not
:
function
(
selector
)
{
if
(
typeof
selector
===
"string"
)
if
(
typeof
selector
===
"string"
)
// test special case where just one selector is passed in
// test special case where just one selector is passed in
if
(
isSimple
.
test
(
selector
)
)
if
(
isSimple
.
test
(
selector
)
)
return
this
.
pushStack
(
jQuery
.
multiFilter
(
selector
,
this
,
true
)
);
return
this
.
pushStack
(
jQuery
.
multiFilter
(
selector
,
this
,
true
)
,
"not"
,
selector
);
else
else
selector
=
jQuery
.
multiFilter
(
selector
,
this
);
selector
=
jQuery
.
multiFilter
(
selector
,
this
);
...
@@ -444,7 +458,8 @@ jQuery.fn = jQuery.prototype = {
...
@@ -444,7 +458,8 @@ jQuery.fn = jQuery.prototype = {
},
},
slice
:
function
()
{
slice
:
function
()
{
return
this
.
pushStack
(
Array
.
prototype
.
slice
.
apply
(
this
,
arguments
)
);
return
this
.
pushStack
(
Array
.
prototype
.
slice
.
apply
(
this
,
arguments
),
"slice"
,
Array
.
prototype
.
slice
.
call
(
arguments
).
join
(
","
)
);
},
},
map
:
function
(
callback
)
{
map
:
function
(
callback
)
{
...
@@ -1272,7 +1287,7 @@ jQuery.each({
...
@@ -1272,7 +1287,7 @@ jQuery.each({
if
(
selector
&&
typeof
selector
==
"string"
)
if
(
selector
&&
typeof
selector
==
"string"
)
ret
=
jQuery
.
multiFilter
(
selector
,
ret
);
ret
=
jQuery
.
multiFilter
(
selector
,
ret
);
return
this
.
pushStack
(
jQuery
.
unique
(
ret
)
);
return
this
.
pushStack
(
jQuery
.
unique
(
ret
)
,
name
,
selector
);
};
};
});
});
...
...
test/unit/core.js
View file @
2875460f
...
@@ -52,6 +52,64 @@ test("jQuery()", function() {
...
@@ -52,6 +52,64 @@ test("jQuery()", function() {
equals
(
jQuery
(
document
.
body
).
get
(
0
),
jQuery
(
'body'
).
get
(
0
),
"Test passing an html node to the factory"
);
equals
(
jQuery
(
document
.
body
).
get
(
0
),
jQuery
(
'body'
).
get
(
0
),
"Test passing an html node to the factory"
);
});
});
test
(
"selector state"
,
function
()
{
expect
(
26
);
var
test
;
test
=
jQuery
();
equals
(
test
.
selector
,
""
,
"Empty jQuery Selector"
);
equals
(
test
.
context
,
document
,
"Empty jQuery Context"
);
test
=
jQuery
(
document
);
equals
(
test
.
selector
,
""
,
"Document Selector"
);
equals
(
test
.
context
,
document
,
"Document Context"
);
test
=
jQuery
(
document
.
body
);
equals
(
test
.
selector
,
""
,
"Body Selector"
);
equals
(
test
.
context
,
document
.
body
,
"Body Context"
);
test
=
jQuery
(
"#main"
);
equals
(
test
.
selector
,
"#main"
,
"#main Selector"
);
equals
(
test
.
context
,
document
,
"#main Context"
);
test
=
jQuery
(
"#main"
,
document
);
equals
(
test
.
selector
,
"#main"
,
"#main Selector"
);
equals
(
test
.
context
,
document
,
"#main Context"
);
test
=
jQuery
(
"#main"
,
document
.
body
);
equals
(
test
.
selector
,
"#main"
,
"#main Selector"
);
equals
(
test
.
context
,
document
.
body
,
"#main Context"
);
test
=
jQuery
(
document
.
body
).
find
(
"#main"
);
equals
(
test
.
selector
,
"#main"
,
"#main find Selector"
);
equals
(
test
.
context
,
document
.
body
,
"#main find Context"
);
test
=
jQuery
(
"#main"
).
filter
(
"div"
);
equals
(
test
.
selector
,
"#main.filter(div)"
,
"#main filter Selector"
);
equals
(
test
.
context
,
document
,
"#main filter Context"
);
test
=
jQuery
(
"#main"
).
not
(
"div"
);
equals
(
test
.
selector
,
"#main.not(div)"
,
"#main not Selector"
);
equals
(
test
.
context
,
document
,
"#main not Context"
);
test
=
jQuery
(
"#main"
).
filter
(
"div"
).
not
(
"div"
);
equals
(
test
.
selector
,
"#main.filter(div).not(div)"
,
"#main filter, not Selector"
);
equals
(
test
.
context
,
document
,
"#main filter, not Context"
);
test
=
jQuery
(
"#main"
).
filter
(
"div"
).
not
(
"div"
).
end
();
equals
(
test
.
selector
,
"#main.filter(div)"
,
"#main filter, not, end Selector"
);
equals
(
test
.
context
,
document
,
"#main filter, not, end Context"
);
test
=
jQuery
(
"#main"
).
parent
(
"body"
);
equals
(
test
.
selector
,
"#main.parent(body)"
,
"#main parent Selector"
);
equals
(
test
.
context
,
document
,
"#main parent Context"
);
test
=
jQuery
(
"#main"
).
eq
(
0
);
equals
(
test
.
selector
,
"#main.slice(0,1)"
,
"#main eq Selector"
);
equals
(
test
.
context
,
document
,
"#main eq Context"
);
});
test
(
"browser"
,
function
()
{
test
(
"browser"
,
function
()
{
expect
(
13
);
expect
(
13
);
var
browsers
=
{
var
browsers
=
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment