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
2a268f5f
Commit
2a268f5f
authored
Jul 11, 2009
by
John Resig
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fixes regression in .attr(), patch by David Flanagan. Fixes #4884.
parent
8db967e9
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
26 additions
and
27 deletions
+26
-27
attributes.js
src/attributes.js
+20
-24
attributes.js
test/unit/attributes.js
+6
-3
No files found.
src/attributes.js
View file @
2a268f5f
jQuery
.
fn
.
extend
({
jQuery
.
fn
.
extend
({
attr
:
function
(
name
,
value
)
{
attr
:
function
(
name
,
value
)
{
var
options
=
name
,
isFunction
=
jQuery
.
isFunction
(
value
);
var
elem
,
options
,
isFunction
=
jQuery
.
isFunction
(
value
);
if
(
typeof
name
===
"string"
)
{
if
(
typeof
name
===
"string"
)
{
// A single attribute
// Are we setting the attribute?
if
(
value
===
undefined
)
{
// Query it on first element
if
(
value
===
undefined
)
{
return
this
.
length
?
return
this
.
length
?
jQuery
.
attr
(
this
[
0
],
name
)
:
jQuery
.
attr
(
this
[
0
],
name
)
:
null
;
null
;
}
else
{
// Set it on all elements
// Convert name, value params to options hash format
for
(
var
i
=
0
,
l
=
this
.
length
;
i
<
l
;
i
++
)
{
}
else
{
elem
=
this
[
i
];
options
=
{};
if
(
isFunction
)
options
[
name
]
=
value
;
value
=
value
.
call
(
elem
,
i
);
jQuery
.
attr
(
elem
,
name
,
value
);
}
}
}
}
}
else
{
// Multiple attributes to set on all
options
=
name
;
// For each element...
for
(
var
i
=
0
,
l
=
this
.
length
;
i
<
l
;
i
++
)
{
for
(
var
i
=
0
,
l
=
this
.
length
;
i
<
l
;
i
++
)
{
elem
=
this
[
i
];
var
elem
=
this
[
i
];
for
(
name
in
options
)
{
value
=
options
[
name
];
// Set all the attributes
if
(
jQuery
.
isFunction
(
value
)
)
for
(
var
prop
in
options
)
{
value
=
value
.
call
(
elem
,
i
);
value
=
options
[
prop
];
jQuery
.
attr
(
elem
,
name
,
value
);
if
(
isFunction
)
{
value
=
value
.
call
(
elem
,
i
);
}
}
jQuery
.
attr
(
elem
,
prop
,
value
);
}
}
}
}
...
@@ -258,4 +254,4 @@ jQuery.extend({
...
@@ -258,4 +254,4 @@ jQuery.extend({
// Using attr for specific style information is now deprecated. Use style insead.
// Using attr for specific style information is now deprecated. Use style insead.
return
jQuery
.
style
(
elem
,
name
,
value
);
return
jQuery
.
style
(
elem
,
name
,
value
);
}
}
});
});
\ No newline at end of file
test/unit/attributes.js
View file @
2a268f5f
...
@@ -68,12 +68,15 @@ test("attr(String, Function)", function() {
...
@@ -68,12 +68,15 @@ test("attr(String, Function)", function() {
});
});
test
(
"attr(Hash)"
,
function
()
{
test
(
"attr(Hash)"
,
function
()
{
expect
(
1
);
expect
(
3
);
var
pass
=
true
;
var
pass
=
true
;
jQuery
(
"div"
).
attr
({
foo
:
'baz'
,
zoo
:
'ping'
}).
each
(
function
(){
jQuery
(
"div"
).
attr
({
foo
:
'baz'
,
zoo
:
'ping'
}).
each
(
function
(){
if
(
this
.
getAttribute
(
'foo'
)
!=
"baz"
&&
this
.
getAttribute
(
'zoo'
)
!=
"ping"
)
pass
=
false
;
if
(
this
.
getAttribute
(
'foo'
)
!=
"baz"
&&
this
.
getAttribute
(
'zoo'
)
!=
"ping"
)
pass
=
false
;
});
});
ok
(
pass
,
"Set Multiple Attributes"
);
ok
(
pass
,
"Set Multiple Attributes"
);
equals
(
jQuery
(
'#text1'
).
attr
({
'value'
:
function
()
{
return
this
.
id
;
}})[
0
].
value
,
"text1"
,
"Set attribute to computed value #1"
);
equals
(
jQuery
(
'#text1'
).
attr
({
'title'
:
function
(
i
)
{
return
i
;
}}).
attr
(
'title'
),
"0"
,
"Set attribute to computed value #2"
);
});
});
test
(
"attr(String, Object)"
,
function
()
{
test
(
"attr(String, Object)"
,
function
()
{
...
@@ -334,8 +337,8 @@ test("toggleClass(String|boolean|undefined[, boolean])", function() {
...
@@ -334,8 +337,8 @@ test("toggleClass(String|boolean|undefined[, boolean])", function() {
e
.
toggleClass
(
false
);
e
.
toggleClass
(
false
);
e
.
toggleClass
();
e
.
toggleClass
();
ok
(
e
.
is
(
".testD.testE"
),
"Assert class present (restored from data)"
);
ok
(
e
.
is
(
".testD.testE"
),
"Assert class present (restored from data)"
);
// Cleanup
// Cleanup
e
.
removeClass
(
"testD"
);
e
.
removeClass
(
"testD"
);
...
...
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