Reputation: 1497
I want to change images inside a div when a link is clicked. I did that, but I can't retrieve the TITLE of the image from the TITLE of the link.
JavaScript
function changeImage(element) {
document.getElementById('imageReplace').src = element;
}
HTML 1
<a href="#" title="PIC1" onclick="changeImage('pics/1.jpg');return false;">my link</a>
HTML 2
<img src="pics/empty.png" id="imageReplace"/>
When I click the link shown in HTML1, the image changes where the HTML2 code is, but the "title" attribute is not retrieved and nothing pops up when the mouse is over the new pic. I want to retrieve this title attribute.
Can anyone help?
Upvotes: 3
Views: 17184
Reputation: 7462
Since you tagged this as jQuery
, you can use that to set title of any element like this,
To get title attribute value = $("#elem").attr("title");
To set title = $("#elem).attr("title","title-value");
Assumption - there is an element with id = elem
.
In your case you need to get title in onclick
. To achieve this, you can do it like this.
onclick="return changeImage('pics/1.jpg',this);"
function changeImage(imgsrc,element) {
$("#imageReplace").attr("src",imgsrc);
var title = $(this).attr("title");
$("#imageReplace").attr("title",title);
return false;
}
Upvotes: 0
Reputation: 1818
Link:
<a href="#" title="PIC1" onclick="changeImage.call(this,'pics/1.jpg');">my link</a>
Image:
<img src="pics/empty.png" id="imageReplace"/>
Function:
var changeImage = function(element) {
document.getElementById('imageReplace').src = element;
document.getElementById('imageReplace').title = this.title;
return false;
}
The call() method calls a function with a given this value and arguments provided individually.
Upvotes: 1
Reputation: 2023
use this
function changeImage(element) {
var element_title =element.title;
var element_src=element.src;
document.getElementById('imageReplace').src = element_src;
document.getElementById('imageReplace').title= element_title ;
}
</script>
<a href="#" title="PIC1" onclick="changeImage(this);return false;">my link</a>
<img src="pics/empty.png" id="imageReplace"/>
Upvotes: 1
Reputation: 193261
Modify your function a little:
function changeImage(src, a) {
var img = document.getElementById('imageReplace');
img.src = src;
img.title = a.title;
}
and HTML:
<a href="#" title="PIC1" onclick="changeImage('pics/1.jpg', this);return false;">my link</a>
So you basically pass HTMLAnchorElement
object (a
tag) into changeImage
function where you can use its properties like title
. There you set image title equal to link one.
Upvotes: 2