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
cb0250f1
Commit
cb0250f1
authored
Jan 07, 2007
by
Jörn Zaefferer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Implemented #753
parent
e1e47cdd
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
49 additions
and
4 deletions
+49
-4
coreTest.js
src/jquery/coreTest.js
+5
-1
jquery.js
src/jquery/jquery.js
+44
-3
No files found.
src/jquery/coreTest.js
View file @
cb0250f1
...
@@ -67,9 +67,13 @@ test("attr(String)", function() {
...
@@ -67,9 +67,13 @@ test("attr(String)", function() {
ok
(
$
(
'#form'
).
attr
(
'action'
).
indexOf
(
"formaction"
)
>=
0
,
'Check for action attribute'
);
ok
(
$
(
'#form'
).
attr
(
'action'
).
indexOf
(
"formaction"
)
>=
0
,
'Check for action attribute'
);
});
});
test
(
"attr(String, Function)"
,
function
()
{
test
(
"attr(String, Function
|String
)"
,
function
()
{
ok
(
$
(
'#text1'
).
attr
(
'value'
,
function
()
{
return
this
.
id
})[
0
].
value
==
"text1"
,
"Set value from id"
);
ok
(
$
(
'#text1'
).
attr
(
'value'
,
function
()
{
return
this
.
id
})[
0
].
value
==
"text1"
,
"Set value from id"
);
ok
(
$
(
'#text2'
).
attr
(
'value'
,
"${this.id}"
)[
0
].
value
==
"text2"
,
"Set value from id"
);
ok
(
$
(
'#text2'
).
attr
(
'value'
,
"${this.id}"
)[
0
].
value
==
"text2"
,
"Set value from id"
);
reset
();
$
(
'#text1, #text2'
).
attr
({
value
:
"${this.id + 'foobar'}"
});
ok
(
$
(
'#text1'
)[
0
].
value
==
"text1foobar"
,
"Set value from id"
);
ok
(
$
(
'#text2'
)[
0
].
value
==
"text2foobar"
,
"Set value from id"
);
});
});
test
(
"attr(Hash)"
,
function
()
{
test
(
"attr(Hash)"
,
function
()
{
...
...
src/jquery/jquery.js
View file @
cb0250f1
...
@@ -388,6 +388,8 @@ jQuery.fn = jQuery.prototype = {
...
@@ -388,6 +388,8 @@ jQuery.fn = jQuery.prototype = {
/**
/**
* Set a single property to a value, on all matched elements.
* Set a single property to a value, on all matched elements.
*
*
* Can compute values provided as ${formula}, see second example.
*
* Note that you can't set the name property of input elements in IE.
* Note that you can't set the name property of input elements in IE.
* Use $(html) or .append(html) or .html(html) to create elements
* Use $(html) or .append(html) or .html(html) to create elements
* on the fly including the name property.
* on the fly including the name property.
...
@@ -397,12 +399,34 @@ jQuery.fn = jQuery.prototype = {
...
@@ -397,12 +399,34 @@ jQuery.fn = jQuery.prototype = {
* @result <img src="test.jpg"/>
* @result <img src="test.jpg"/>
* @desc Sets src attribute to all images.
* @desc Sets src attribute to all images.
*
*
* @example $("img").attr("title", "${this.src}");
* @before <img src="test.jpg" />
* @result <img src="test.jpg" title="test.jpg" />
* @desc Sets title attribute from src attribute, a shortcut for attr(String,Function)
*
* @name attr
* @name attr
* @type jQuery
* @type jQuery
* @param String key The name of the property to set.
* @param String key The name of the property to set.
* @param Object value The value to set the property to.
* @param Object value The value to set the property to.
* @cat DOM/Attributes
* @cat DOM/Attributes
*/
*/
/**
* Set a single property to a computed value, on all matched elements.
*
* Instead of a value, a function is provided, that computes the value.
*
* @example $("img").attr("title", function() { return this.src });
* @before <img src="test.jpg" />
* @result <img src="test.jpg" title="test.jpg" />
* @desc Sets title attribute from src attribute.
*
* @name attr
* @type jQuery
* @param String key The name of the property to set.
* @param Function value A function returning the value to set.
* @cat DOM/Attributes
*/
attr
:
function
(
key
,
value
,
type
)
{
attr
:
function
(
key
,
value
,
type
)
{
// Check to see if we're setting style values
// Check to see if we're setting style values
return
typeof
key
!=
"string"
||
value
!=
undefined
?
return
typeof
key
!=
"string"
||
value
!=
undefined
?
...
@@ -413,15 +437,17 @@ jQuery.fn = jQuery.prototype = {
...
@@ -413,15 +437,17 @@ jQuery.fn = jQuery.prototype = {
for
(
var
prop
in
key
)
for
(
var
prop
in
key
)
jQuery
.
attr
(
jQuery
.
attr
(
type
?
this
.
style
:
this
,
type
?
this
.
style
:
this
,
prop
,
key
[
prop
]
prop
,
jQuery
.
parseSetter
(
key
[
prop
])
);
);
// See if we're setting a single key/value style
// See if we're setting a single key/value style
else
else
{
// convert ${this.property} to function returnung that property
jQuery
.
attr
(
jQuery
.
attr
(
type
?
this
.
style
:
this
,
type
?
this
.
style
:
this
,
key
,
value
key
,
jQuery
.
parseSetter
(
value
)
);
);
}
})
:
})
:
// Look for the case where we're accessing a style value
// Look for the case where we're accessing a style value
...
@@ -1363,6 +1389,16 @@ jQuery.extend({
...
@@ -1363,6 +1389,16 @@ jQuery.extend({
return
r
;
return
r
;
},
},
parseSetter
:
function
(
value
)
{
if
(
typeof
value
==
"string"
&&
value
[
0
]
==
"$"
)
{
var
m
=
value
.
match
(
/^
\$
{
(
.*
)
}$/
);
if
(
m
&&
m
[
1
]
)
{
value
=
new
Function
(
"return "
+
m
[
1
]
);
}
}
return
value
;
},
attr
:
function
(
elem
,
name
,
value
){
attr
:
function
(
elem
,
name
,
value
){
var
fix
=
{
var
fix
=
{
"for"
:
"htmlFor"
,
"for"
:
"htmlFor"
,
...
@@ -1378,6 +1414,11 @@ jQuery.extend({
...
@@ -1378,6 +1414,11 @@ jQuery.extend({
selected
:
"selected"
selected
:
"selected"
};
};
// get value if a function is provided
if
(
value
&&
typeof
value
==
"function"
)
{
value
=
value
.
apply
(
elem
);
}
// IE actually uses filters for opacity ... elem is actually elem.style
// IE actually uses filters for opacity ... elem is actually elem.style
if
(
name
==
"opacity"
&&
jQuery
.
browser
.
msie
&&
value
!=
undefined
)
{
if
(
name
==
"opacity"
&&
jQuery
.
browser
.
msie
&&
value
!=
undefined
)
{
// IE has trouble with opacity if it does not have layout
// IE has trouble with opacity if it does not have layout
...
...
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