get image filename fom div

A

Andrew Poulos

I've have a number of DIV tags that contain one image. Each DIV has an
onclick event. How can I get the image filename? I just need the
filename and not the file path.

I was trying to do something with getElementsByTagName but I'm stuck
trying to work out which one has as its parent DIV the DIV that was clicked.

Andrew Poulos
 
E

Evertjan.

Andrew Poulos wrote on 10 jul 2005 in comp.lang.javascript:
I've have a number of DIV tags that contain one image. Each DIV has an
onclick event. How can I get the image filename? I just need the
filename and not the file path.

<div onclick='blah'><img src="a.jpg"></div>
<div>other things</div>
<div onclick='blah'>some text <img src="b.jpg"></div>
<div onclick='blah'><img src="c.jpg"></div>
<br><br>
<div id='r'></div>

<script type="text/javascript">

var r = document.getElementById('r');

var a = document.getElementsByTagName("div");
for (var i = 0; i < a.length; i++) {
var b = a.getElementsByTagName("img");
if(b.length>0)
r.innerHTML+= 'divnr ' + (i+1) + ": " +
b[0].src.replace(/.*\//,'')+'<br>';
}

</script>
 
E

Evertjan.

Evertjan. wrote on 10 jul 2005 in comp.lang.javascript:
Andrew Poulos wrote on 10 jul 2005 in comp.lang.javascript:
I've have a number of DIV tags that contain one image. Each DIV has an
onclick event. How can I get the image filename? I just need the
filename and not the file path.

<div onclick='blah'><img src="a.jpg"></div>
<div>other things</div>
<div onclick='blah'>some text <img src="b.jpg"></div>
<div onclick='blah'><img src="c.jpg"></div>
<br><br>
<div id='r'></div>

<script type="text/javascript">

var r = document.getElementById('r');

var a = document.getElementsByTagName("div");
for (var i = 0; i < a.length; i++) {
var b = a.getElementsByTagName("img");
if(b.length>0)
r.innerHTML+= 'divnr ' + (i+1) + ": " +
b[0].src.replace(/.*\//,'')+'<br>';
}

</script>


reading your question again, perhaps this is what you want?

<div onclick='blah(this)'><img src="a.jpg"></div>
<div>other things</div>
<div onclick='blah(this)'>some text <img src="b.jpg"></div>
<div onclick='blah(this)'><img src="c.jpg"></div>


<script type="text/javascript">

function blah(x){
var b = x.getElementsByTagName("img");
if(b.length>0)
alert(b[0].src.replace(/.*\//,''))
}

</script>
 
A

ASM

Andrew said:
I've have a number of DIV tags that contain one image. Each DIV has an
onclick event. How can I get the image filename? I just need the
filename and not the file path.

<script type="text/javascript">
<!--
function getImgFileName(thisDiv) {
var imgPath = thisDiv.getElementsByTagName('img')[0].src;
var imgFile = imgPath.substring(imgPath.lastIndexOf('/')+1,imgPath.length);
alert('img file = '+imgFile);
}
//-->
</script>
<p onclick="getImgFileName(this)"><img src='photo1.jpg'>photo 1</p>

<div onclick="getImgFileName(this)">
<h2>photo 2</h2>
<img src='TE_Prefs.jpg'>
<p>few words of description
</div>
 
A

Andrew Poulos

Evertjan. said:
Evertjan. wrote on 10 jul 2005 in comp.lang.javascript:

Andrew Poulos wrote on 10 jul 2005 in comp.lang.javascript:

I've have a number of DIV tags that contain one image. Each DIV has an
onclick event. How can I get the image filename? I just need the
filename and not the file path.

<div onclick='blah'><img src="a.jpg"></div>
<div>other things</div>
<div onclick='blah'>some text <img src="b.jpg"></div>
<div onclick='blah'><img src="c.jpg"></div>
<br><br>
<div id='r'></div>

<script type="text/javascript">

var r = document.getElementById('r');

var a = document.getElementsByTagName("div");
for (var i = 0; i < a.length; i++) {
var b = a.getElementsByTagName("img");
if(b.length>0)
r.innerHTML+= 'divnr ' + (i+1) + ": " +
b[0].src.replace(/.*\//,'')+'<br>';
}

</script>


reading your question again, perhaps this is what you want?

<div onclick='blah(this)'><img src="a.jpg"></div>
<div>other things</div>
<div onclick='blah(this)'>some text <img src="b.jpg"></div>
<div onclick='blah(this)'><img src="c.jpg"></div>


<script type="text/javascript">

function blah(x){
var b = x.getElementsByTagName("img");
if(b.length>0)
alert(b[0].src.replace(/.*\//,''))
}

</script>


Thanks for the help (and to ASM as well). I never realised that you
could do getElement... with an object other than document. It's going to
change some of my other code for the better.

thanks again
Andrew Poulos
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
474,432
Messages
2,571,682
Members
48,796
Latest member
Greg L.

Latest Threads

Top